係統粉 > 電腦問答 > 其他問答

已解決C#實現延遲的問題

提問者:多想聽說你愛我  |  瀏覽次  |  提問時間:2017-03-03  |  回答數量:6

C#實現延遲的問題 A 用戶 觸發 方法 method1 :輸出“A用戶的名字”,10秒後(延遲函數實現),觸發method2:輸出“A用戶end”;當B 用戶觸發 方法method1 的時候,輸出“B用戶的名字”,10秒後(延遲函數實現),觸發method2:輸出“B用戶end”A用戶在執行過程中,又不影響B用戶的輸出;這個延遲函數這樣寫,能實現麼?long beginTime = DateTime.Now.Ticks;while (true){long endTime = DateTime.Now.Ticks;if ((endTime - beginTime) > 1e8) break;}

已有6條答案
汲先生丶

汲先生丶

回答數:93  |  被采納數:112

用多線程,有個API叫做Sleep(10000)可以延時10秒,用while會占用CPU100%
2017-03-04 01:32:07
讚 9
魚說愛吃貓

魚說愛吃貓

回答數:134  |  被采納數:5

這樣寫System.Threading.Thread.Sleep(10000);
A用戶在sleep的同時,會影響到B 用戶的操作麼?
另外就是sleep 會不會很耗係統資源?
2017-03-04 04:05:03
讚 13
德涅斯特祖國

德涅斯特祖國

回答數:145  |  被采納數:117

不知道,試試。在VC裏Sleep期間CPU使用率為0%
2017-03-03 23:26:55
讚 14
卉兒1228

卉兒1228

回答數:124  |  被采納數:91

sing System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace usertimer
{
class Program
{
//public void User1()
//{

//}
static void Main(string[] args)
{
new Thread(new ParameterizedThreadStart(TA)).Start("A用戶");
new Thread(new ParameterizedThreadStart(TB)).Start("B用戶");
Console.Read();
}

static void TA(Object User)
{
Console.WriteLine(User.ToString() + "的名字");
Thread.Sleep(10000);
Console.WriteLine(User.ToString() + "end");
}
static void TB(Object User)
{
Console.WriteLine(User.ToString() + "的名字");
Thread.Sleep(15000);
Console.WriteLine(User.ToString() + "end");
}
}
}

===================================================================
sleep 可以用,為每個用戶開啟一個線程的話,sleep後是否還需要 關閉這個線程?
因用戶量很大,擔心係統負擔問題
2017-03-04 04:48:43
讚 12
新蘭の櫻雪戀

新蘭の櫻雪戀

回答數:212  |  被采納數:54

在這個線程return以後就自動關閉了
2017-03-04 05:04:21
讚 21
淨重是我的人生

淨重是我的人生

回答數:52  |  被采納數:35

多謝斑斑哈
2017-03-04 02:29:55
讚 5
相關問答
最新其他問答
解決方法