【发布时间】:2018-07-05 13:15:07
【问题描述】:
我在主线程中创建了新线程
new Thread(() =>
{
// my code
System.Diagnostics.Debug.WriteLine("my code completed");
Application.Current.Dispatcher.Invoke(MyMethod, DispatcherPriority.ContextIdle);
}).Start();
执行my code后,调用MyMethod需要5-8秒
我在输出窗口中看到,在调用MyMethod之前,下面的行出现了几次
The thread 0x2954 has exited with code 259 (0x103)
为了解决这个问题,我厌倦了使用Thread.CurrentThread.Abort(); 中止当前线程,但这并没有解决我的问题。我想在my code 完成后立即致电MyMethod。
【问题讨论】:
-
不使用线程,为什么不使用任务,然后您可以使用 Task.ContinueWith 调用 MyMethod。见msdn.microsoft.com/en-us/library/dd270696(v=vs.110).aspx
-
使用 Debug > Windows > Threads 找出主线程如此繁忙的原因,小心它烧毁 100% 核心。使用 Invoke 而不是 BeginInvoke 是一个标准的 WPF 错误。 259 退出代码是由 VS2015 中的一个错误引起的,在其他方面没有任何意义。
标签: c# .net wpf multithreading visual-studio