如果我有一個線程的問題:關於多線程
Thread sendMessage = new Thread(new ThreadStart(timer.Start()));
意志,計時器的Tick事件將在主線程或在SendMessage線程?
編輯: 我有一個隊列,我想,每x milisecond定時器將蜱和程序將出列從隊列陣列,但是這是我的代碼:
Thread sendMessage = new Thread(new ThreadStart(startThreadTimer));
public Queue<Array> messageQueue = new Queue<Array>();
System.Threading.Timer timer;
private void startThreadTimer()
{
System.Threading.TimerCallback cb = new System.Threading.TimerCallback(checkIfQueue);
timer = new System.Threading.Timer(cb, null, 4000, 30);
}
private static void checkIfQueue(object obj)
{
}
可以和我「T調用無靜態方法或從checkIfQueue使用無靜電場,它必須是靜態的,我能做些什麼?
編輯: 這裏是代碼,你人送我,我cahnged他所以菲茨我的目標,將它的工作?
public ConcurrentQueue<Array> messageQueue = new ConcurrentQueue<Array>();
public void Example()
{
var thread = new Thread(
() =>
{
while (true)
{
Array array;
byte[] byteArray = {};
if (messageQueue.Count > 0)
{
messageQueue.TryDequeue(out array);
foreach (byte result in array)
{
byteArray[byteArray.Length] = result;
}
controllernp.Write(byteArray, 0, 100);
}
Thread.Sleep(30);
}
});
thread.IsBackground = true;
thread.Start();
}
它不會在任何地方。編寫代碼之前,您無法啓動該程序。 – 2010-10-22 17:28:43
@Hans--這種態度並沒有什麼幫助。你至少可以指出程序的哪一部分是錯誤的,而不僅僅是一次沖洗。 – Dismissile 2010-10-22 17:32:09
@Dis - 全部都是錯誤的。我無法明智地回答基於無法運行的代碼的問題。 – 2010-10-22 17:44:06