作者don750421 (1+1≠2)
看板C_Sharp
标题[问题] Winform与Thread 相关问题请教..
时间Wed Mar 16 21:59:38 2016
目前有个需求,Mainform会有资料再跑..,但是,MainForm又会有其他按键事件。
例如:要开启一个Form做登入的视窗..
在不影响主Worm的情况下,选择以下两种方式..
第一种方式:
LoginForm TempLogin = new LoginForm();
TempLogin.TopMost = true;
TempLogin.Show();
第二种方式:
MainForm.Invoke(new MethodInvoker(delegate()
{
LoginForm TempLogin = new LoginForm();
TempLogin.TopMost = true;
TempLogin.Show();
}));
问题一:
请问一下,以上两种方式所开启的Form都是跑另一个Thread吗? 那差异为何?
问题二:
假设我在LoginForm登入後,要把登入的人名带回MainForm显示...
所以,我在LoginForm 做一个 delegate,并在MainForm实作deleate。
把登入人员名称显示在ui上。
那麽我在MainForm显示人员资讯在UI上,也是跑原本MainForm的Thread吗?
还是跑我原本LoginForm的那个Thread? (会影响到MainForm执行吗?)
问题三:
假设,我在LoginForm 上的某个按钮事件 "动态产生Form(使用Form.Show())",
作为显示人员的Detail资料,那麽,这个Form又会是跑哪个Thread呢?
最近刚在研究Thread和Form的关系,所以问题比较多@@
先谢谢各位前辈~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.39.100.182
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1458136781.A.D20.html
1F:→ yeo1987: 决定在於你呼叫的时候Thread是不是一样 03/16 23:46
2F:→ yeo1987: Invoke会根据Control所属的Thread执行 03/16 23:48
3F:→ kalaja: 所有与控制项显示相关都是主执行绪,Control.Invoke是强制 03/17 10:11
4F:→ kalaja: 使用主执行绪执行。 03/17 10:12
5F:→ kalaja: 可以观察Thread.CurrentThread会更清楚。 03/17 10:14