c# 运行进程而不冻结我的应用程序的 GUI
我想启动一个进程(调用另一个程序),目前外部程序需要时间(这是正常的)!
但它冻结了我的 GUI 我看到了很多例子,我正在学习,很难弄清楚, 尝试阅读和学习线程,但这并不容易(至少对我来说) 以及好的简单教程或代码示例?
干杯
I want to start a process (calling another program), currently the external program takes time (it is normal)!
but it freezes my GUI
I saw allot of examples and I'm learning, it is hard to figure it out,
trying to read and learn threading, but it is not that easy (at least for me)
and good simple tutorial or code sample?
cheers
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是显示如何使用异步方法的链接。
http://www.codeproject.com/KB/cs/AsyncMethodInitation.aspx
您可以使用异步方法来启动该进程,并且启动时不会冻结 gui。
MethodInvoker 说明
Here is a link showing how to use an asynchronous method.
http://www.codeproject.com/KB/cs/AsyncMethodInvocation.aspx
You can use the asynchronous method to start the process, and it won't freeze the gui while it starts up.
MethodInvoker Description
BackgroundWorker 正是为这种场景而设计的。
请参阅 MSDN。
它提供了有用的信号发送方法(双向),不需要您自己将回调编组回 UI 线程。
或者使用任务并行库...
BackgroundWorker was designed for exactly this kind of scenario.
See MSDN.
It provides useful methods for signalling (both ways) that don't require you to marshall calls back to the UI thread yourself.
Or use the Task Parallel Library...
使用这个:
在顶部声明:
然后在 form_load:
之后声明:
Use this:
declare at top:
then in form_load:
after which: