Это не обычная BS "Corss-Thread opeartion", поэтому, пожалуйста, не публикуйте очевидные решения.
Это то, что уже несколько дней сводит меня с ума.
У меня NotifyIcon
, с привязанным ContextMenuStrip
. Все работает как надо, но иногда (и я не могу вспомнить точные шаги для воспроизведения этого) я получаю исключение между потоками. Весь мой доступ к _3 _ / _ 4_ дополняется Invoke cr * p, но все же - когда пользователь щелкает правой кнопкой мыши значок уведомления - возникает исключение.
Это полные данные из исключения:
Message
: Межпоточная операция недействительна: Control '' получен из потока, отличного от потока, в котором он был создан.
Call stack
:
в System.Windows.Forms.Control.get_Handle ()
в System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, ширина Int32, высота Int32, указано BoundsSpecified)
в System.Windows.Forms.ToolStrip.SetBoundsCore (Int32 x, Int32 y, ширина Int32, высота Int32, указано BoundsSpecified)
в System.Windows.Forms.ToolStripDropDown.SetBoundsCore (Int32 x, Int32 y, ширина Int32, высота Int32, указано BoundsSpecified)
в System.Windows.Forms.Control.SetBounds (Int32 x, Int32 y, ширина Int32, высота Int32, указано BoundsSpecified)
в System.Windows.Forms.Control.set_Location (значение точки)
в System.Windows.Forms.ToolStripDropDown.Show (Int32 x, Int32 y)
в System.Windows.Forms.ContextMenuStrip.ShowInTaskbar (Int32 x, Int32 y)
в System.Windows.Forms.NotifyIcon.ShowContextMenu ()
в System.Windows.Forms.NotifyIcon.WndProc (сообщение и сообщение)
в System.Windows.Forms.NotifyIcon.NotifyIconNativeWindow.WndProc (Сообщение & m)
в System.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
в System.Windows.Forms.UnsafeNativeMethods.PeekMessage (MSG и сообщение, HandleRef hwnd, Int32 msgMin, Int32 msgMax, Int32 удалить)
в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (Int32 dwComponentID, причина Int32, Int32 pvLoopData)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner (причина Int32, контекст ApplicationContext)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoop (причина Int32, контекст ApplicationContext)
в System.Windows.Forms.Application.Run (форма mainForm)
в StarLIMS.Grabber.Manager.Program.Main (String [] args) в D: \ SDMS14SP2 \ StarLIMS.Grabber \ StarLIMS.Grabber.Manager \ Program.cs: строка 34
в System.AppDomain._nExecuteAssembly (сборка сборки, аргументы String [])
в System.AppDomain.ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String [] args)
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта)
в System.Threading.ExecutionContext.Run (контекст выполнения ExecutionContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.ThreadHelper.ThreadStart ()
ContextMenuStrip/NotifyIcon
? - person The Scrum Meister   schedule 05.12.2010