我有一個foreach語句,並且我需要使它在foreach的末尾調用一個方法,並且if語句僅在距上次執行時間3秒後執行。只有在自上次使用後的X秒後才執行方法
這是代碼。
//Go over Array for each id in allItems
foreach (int id in allItems)
{
if (offered > 0 && itemsAdded != (offered * 3) && tDown)
{
List<Inventory.Item> items = Trade.MyInventory.GetItemsByDefindex(id);
foreach (Inventory.Item item in items)
{
if (!Trade.myOfferedItems.ContainsValue(item.Id))
{
//Code to only execute if x seconds have passed since it last executed.
if (Trade.AddItem(item.Id))
{
itemsAdded++;
break;
}
//end code delay execution
}
}
}
}
而我不想睡覺它,因爲當添加一個項目時,我需要從服務器獲得該項目已被添加的確認。
我需要的代碼來執行,每次,只是不就快了。如果這有道理?我必須等待服務器驗證,接受併發回確認信息。我不希望它將它們加快速度。 – Coffman34
如果您只是需要等待回覆,請不要依賴時間,請[隊列](http://www.dotnetperls.com/queue)。與您的服務器通信的後臺線程發送第一個「命令」並等待,直到它接收到下一個「命令」的答案,然後從隊列發送下一個「命令」,依此類推。 (我想你是在後臺線程中這樣做的,因爲它應該與所有網絡/ i-net通信)。 – flexo