【发布时间】:2018-02-21 09:42:28
【问题描述】:
阅读大量有关计时器、线程和调用异步进程(cmd 文件)的文档时,我陷入两难境地,不知道哪种方法和哪种组合最适合我的方案。
我的场景:
- .NET Framework 4.6 的控制台应用程序
- 我有一个字典,它有一个(作为键)一个 int 表示特定秒的值。
- 进程从第二个零 (0) 开始
- 当从开始(步骤 3)经过的秒数与字典的键(在步骤 2 中)相同时,我必须调用一个(或多个)进程(每次都不同,进程启动)。这必须在同一秒内,所以所有调用都必须在不同的线程中(我假设)
- 此过程需要一秒钟以上才能完成,我有一个异步调用来处理事件以获取响应。
到目前为止我得到了什么:
我每秒运行一个 System.Thread.Timer,其中包含一个示例处理程序,如果该秒有任何值作为键,则该处理程序调用一个进程。
但我不知道必须使用哪个计时器(表单、计时器、线程)才能以更好的性能/方式抱怨这一点。我读过这个,但我认为理解它有点复杂。这也许是我的第一个问题,一个很好的实现。
我也用 Ohad Schneider 的回答来调用这个过程: Is there any async equivalent of Process.Start?
但是,我必须将调用异步/异步的哪个组合与所选类型的计时器一起使用?
我在这里有点迷路,对不起我的英语,任何评论、回答或建议或对这篇文章的版本将不胜感激。感谢您的耐心等待
【问题讨论】:
-
只是一个快速的选择——“困境”是在两个相等的选项之间进行选择(可以是好选项也可以是坏选项),您无法在它们之间进行选择。它不是“问题”的同义词。
标签: c# multithreading asynchronous timer system.timers.timer