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