有一个线程可能会抛出异常,当发生异常时,会被捕获,显示一个特定的消息框,然后关闭软件。
但是问题在于,由于这不是程序的主线程,在显示消息框时,程序窗口仍然处于空闲状态,用户可以与其交互。它不会锁定屏幕,就像在主窗口上方显示消息框时那样。我想避免这种情况。
我想知道最好的方法是什么。到目前为止,我考虑使用某种线程通信(从未在C#中使用过)来从主线程中引发消息框。
引发线程:
Thread thread = new Thread(new ThreadStart(MyClass.MyMethod));
thread.IsBackground = true;
thread.Start();
MyMethod
的各个部分都捕获了异常。自程序启动以来,它是一个不停循环运行的线程。异常的原因可能是网络错误。
Thread
,BackgroundWorker
)?异常可能在哪里被引发?请发布代码片段以描述当前的工作方式。 - Mike Perrenoud