我正在使用 WindowsFormsApplicationBase 来显示启动画面。现在,当创建主表单并发生错误时,应该显示一个消息框来通知用户。但是,消息框显示在初始屏幕下方,因此不可见。我需要关闭启动画面,以便与用户进行交互。
以下代码会给出跨线程操作异常:
class SingleInstanceApplication : WindowsFormsApplicationBase
{
private static SingleInstanceApplication instance;
public static void CloseSplash()
{
if (instance.SplashScreen != null)
instance.SplashScreen.Close();
}
}
错误:
Cross-thread operation not valid: Control 'Splash' accessed from a thread
other than the thread it was created on.
这甚至可能吗?
最佳答案
如果您的初始屏幕表单名为 mySplashScreen
:
mySplashScreen.Invoke(new MethodInvoker(delegate {
mySplashScreen.Close();
mySplashScreen.Dispose();
}));
关于c# - 从不同的线程关闭启动画面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7471841/