當前位置:係統粉 > 電腦問答 > 其他問答 > C#實現延遲的問題

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

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

魚說愛吃貓

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

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

德涅斯特祖國

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

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

卉兒1228

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

2017-03-04 04:48:43
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後是否還需要 關閉這個線程?
因用戶量很大,擔心係統負擔問題
讚 12
新蘭の櫻雪戀

新蘭の櫻雪戀

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

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

淨重是我的人生

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

2017-03-04 02:29:55
多謝斑斑哈
讚 5
解決方法
版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航