我有一個Windows應用程序必須每秒完成一次20次的API調用。同步異步API調用
要求是讀取操作必須在幾毫秒內完成。
以下代碼使用每秒運行一次的計時器。 aaList是一個包含20個對象的列表。
不幸的是,由於我目前的代碼有些讀取是在不同的時間完成的(有時半秒鐘後),所以顯然在某個地方形成瓶頸。
任何人都可以建議如何我的要求可以實現在一個更同步的方式嗎? (也許我應該以不同的方式做這個?)
private void tmrAAProcess_Tick(object state)
{
foreach (aa in aaList) {
Task.Factory.StartNew(() =>
{
aa.ReadFromWebsite();
}, TaskCreationOptions.LongRunning);
}
}
每秒恰好20次?這是每50毫秒,Windows不是一個實時操作系統,這是不可能的。 – Femaref
那麼他們不會運行每50ms ... 20個電話將需要在同一時間每秒同時進行。 –
我認爲你需要測量究竟花了多長時間。它是否啓動線程?或者實際上提出要求?是(一些)對同一臺服務器的請求?您是否嘗試過使用['Barrier'](http://msdn.microsoft.com/zh-cn/library/system.threading.barrier.aspx)來同步這些線程? – svick