C# Window应用 跨线程
1.采用 CheckForIllegalCrossThreadCalls = false;
2.采用 Control.Invoke方法
3.采用 SynchronizationContext方法
来自大佬 --》https://www.cnblogs.com/lzxianren/p/SynchronizationContext.html
public MainWindow() { SynchronizationContext uiContext = SynchronizationContext.Current; Thread thread = new Thread(Run); thread.Start(uiContext); }
private void Run(object state) { SynchronizationContext uiContext = state as SynchronizationContext; int index = 0; while(true) { Thread.Sleep(10); uiContext.Post(UpdateUI, "Title " + index.ToString()); index++; } } private void UpdateUI(object state) { string text = state as string; this.Text = text; }