我已经编程了一年的控制台应用程序,我认为是时候开始使用表单了.我真的不知道如何让2个循环同时工作.
any1可以帮助我,并给我一个2循环的例子,一起工作(1从1到100计数,第二个计数从100到200(同时,两个消息框)).我一直在网上寻找类似的东西,但没有成功.
我也想知道无限时间是否必须像(5> 2)或者如果有更好的方法来做到这一点.
提前致谢 !
Eri*_*ert 12
我真的不知道如何让2个循环同时工作.
这是有一个简单的问题巨大的答案,但我会试着打破它给你的.
你在基本层面上描述的问题是"我有两种不同的代码,它们都以某种方式与用户交互.我想给用户留下两个代码同时运行的印象,顺利回应用户输入."
显然,最简单的方法是编写两个程序.也就是说,让操作系统解决问题.操作系统以某种方式设法在"同时"运行许多不同的进程,所有进程都与用户平滑地(我们希望)进行交互.
但是有两个过程会带来很高的成本.进程是重量级的,并且两个代码之间相互通信的代价很高.假设您希望在同一程序中拥有两个代码.那你现在怎么办?
一种方法是在同一进程中将两个代码分别放在自己的线程上.这似乎是一个好主意,但它产生了很多自己的问题.现在你必须担心线程安全和死锁以及所有这些.而且,遗憾的是,只允许一个线程与用户通信.每个表单应用程序都有一个"UI"线程.如果你有两个"工作"线程运行你的代码,他们必须使用跨线程通信与UI线程进行通信.
另一种方法是将每一段代码分解成小块,然后在UI线程上按顺序安排所有部分.调度程序可以优先考虑用户交互,任何特定的小工作都不会阻止并使UI线程无响应.
这是我建议你探索的最后一种技术.我们在C#5中做了很多工作,以便更容易编写这种风格的程序.
有关此新功能的详细信息,请参见http://msdn.microsoft.com/en-us/async.
| 归档时间: |
|
| 查看次数: |
3019 次 |
| 最近记录: |