0
我正在使用C#編寫P2P應用程序。 這是一個帶有文件分割和文本聊天的文件傳輸。兩個線程在同一個列表上工作
客戶端有2個線程,1個用於監聽,1個用於發送。 當我發送一個文件時,它首先被分成10個部分,這10個部分被添加到客戶端的發送隊列中,然後開始發送文件塊1. 但是現在我想通過相同的管道發送消息。 然後我的想法是將該消息插入到文件塊2之前的發送列表中。 2個線程需要使用哪種線程才能在同一個列表上工作? 我已經說明了這樣收到的對象。
我的發送功能最初的想法是這些方針的東西:
public void Send()
{
while (IsConnected())
{
if (unSentObjects.Count > 1)
{
Task sendTask = new Task(() => SendObj(unSentObjects[0]));
sendTask.Start();
}
}
}
就像一個叫'ItemInUse'的'bool'的標誌。該對象需要等待訪問它並使用同步對象。您的應用程序的實際數據不會。簡單地說,如果'ItemInUse'爲false,將其設置爲true,然後對數據進行任何操作,然後在完成時將其設置爲false。 –
隊列是發送者線程本地的,然後線程2將新對象添加到發送隊列中。但我不能這樣做,因爲你說它是一個同時讀/寫,但沒有辦法添加一個新的對象發送塊1完成後? – BoinQ