wpf中多窗口线程处理
来源:互联网 发布:星图数据官网 编辑:程序博客网 时间:2024/04/29 20:20
wpf中多窗口线程处理
描述如下
在主窗口中打开一个线程,这个线程去启动一个新的窗口。
代码如下
启动新线程:
Thread newWindowThread = new Thread(new ThreadStart(ThreadStartingPoint));
newWindowThread.SetApartmentState(ApartmentState.STA);
newWindowThread.IsBackground = true;
newWindowThread.Start();
//线程调用方法
private void ThreadStartingPoint()
{
Window3 tempWindow = new Window3();
tempWindow.Show();
System.Windows.Threading.Dispatcher.Run();
}
这里面有两个地方要注意,
第一个红字:这个地方必须设置这个STA,否则会报错“调用线程必须为 STA,因为许多 UI 组件都需要。”
第二个红字:如果去掉这个红字,会发现启动的窗口显示出来以后会很快就关掉。
这里有个奇怪的现象。我也不是很明白,msdn描述如下:说是启动一个新的独立线程来管理这个新的窗口。
一些 WPF 应用程序需要多个高级别窗口。一个线程/Dispatcher 组合管理多个窗口是完全可以接受的,但有时使用多个线程可以更出色地完成工作。如果其中一个窗口有可能独占该线程,那么采用多个线程就更有必要。
当用户单击“new window”(新建窗口)按钮时,便在一个单独的线程中启动了窗口的一个副本。这样,一个窗口中的长时间运行或阻止操作就不会锁定所有其他窗口。
新线程的起点。我们在此线程的控制下创建一个新窗口。WPF 自动创建一个新的 Dispatcher 来管理新线程。要使该窗口工作,只需启动 Dispatcher。
- wpf中多窗口线程处理
- wpf中多窗口线程处理
- WPF中窗口控件的跨线程调用
- WPF中窗口控件的跨线程调用
- WPF线程处理模型
- WPF线程处理模型
- wpf中webbrowser弹出windows 安全警告窗口的处理
- WPF多窗口
- WPF中自制窗口标题栏
- WPF 中初始化启动窗口
- WPF新建线程覆盖窗口的进度条
- 多线程线程处理函数中获取窗口类指针
- WPF/WinForm在线程中调用提示窗MessageBox阻塞窗口方法
- WPF中使用UI线程
- 线程中更新窗口
- 进度条(BackgroundWorker后台线程处理)--WPF应用
- WPF BackgroundWorker线程与进度的处理
- WPF多窗口综合案例
- 全局变量如何定义
- Ogitor的编译步骤
- 2011.5.23 C++对齐
- Android应用程序分析——apk的组成
- if ( yy == xx.getValue() ) 编译器扩展模拟代码
- wpf中多窗口线程处理
- 成功实现通过SSDT HOOK拒绝指定文件的访问
- Android---Activity生命周期状态
- SQL语句优化与索引的使用
- 客户认为导航地图数据升级后不够新
- U盘各种启动盘的制作(推荐做PE启动盘)!以及用U盘安装系统(把你的U盘当光盘来用)
- 关于QImage和IplImage之间转换的实现
- treectrl入门
- treectrl入门