为什么控件与我正在工作的控件不同?

Tom*_*ght 4 c# multithreading

我不是(故意)在我的C#应用​​程序中使用线程.事实上我的主要方法有一个[STAThread],我认为这意味着我只使用一个线程.

为什么然后,我会收到此错误消息?

跨线程操作无效:控制'messageLog'从其创建的线程以外的线程访问.

Jar*_*Par 6

有几种类型可以导致您的代码在不同的线程上运行而无需任何显式调用System.Threading.尤其是FileSystemWatcherBackgroundWorker浮现在脑海中.你使用这些类型中的任何一种吗?

同样STAThread决不会限制进程生成线程的能力.它改为设置初始应用程序线程的COM单元类型.

  • 如果这是一个winfoms应用程序,请使用System.Windows.Forms.Timer,它会将计时器事件分派给GUI线程. (3认同)