C#中的线程和任务不能独立执行

C#中的线程和任务不能独立执行,c#,multithreading,task,C#,Multithreading,Task,我正在执行一个线程和一个任务。 ReceiveThread是一个持续从网络接收数据的线程,WriteTask是一个将ReceiveThread接收的数据写入缓冲区的任务。它们在不同的线程中,因为我应该仍然能够接收高速数据并将它们存储在缓冲区中,而写程序(速度较慢)只能每隔一段时间从缓冲区中提取数据 ReceiveThread和WriteTask共享一个公共缓冲区,该缓冲区使用ReaderWriterLockSlim来避免读写访问错误。碰巧我在WriteTask之前首先创建了ReceiveThre

我正在执行一个线程和一个任务。 ReceiveThread是一个持续从网络接收数据的线程,WriteTask是一个将ReceiveThread接收的数据写入缓冲区的任务。它们在不同的线程中,因为我应该仍然能够接收高速数据并将它们存储在缓冲区中,而写程序(速度较慢)只能每隔一段时间从缓冲区中提取数据

ReceiveThread和WriteTask共享一个公共缓冲区,该缓冲区使用ReaderWriterLockSlim来避免读写访问错误。碰巧我在WriteTask之前首先创建了ReceiveThread,但我应该很快就会使它们成为相同的类型。我只是注意到,当我在WriteTask上暂停时,ReceiveThread也会暂停,这是我没有预料到的,因为我希望它们是独立的线程/任务

我想知道作为一个线程和一个任务是否是不将两者视为独立任务的因素

这不是全部的源代码,但不知怎么的,这个想法是这样的

if (_receiveThread == null)
{
    _receiveThread = new Thread(new ThreadStart(ReceiveLoop));
    _receiveThread.Start();
}
if (_writeTask == null)
{
    _writeTask = Task.Factory.StartNew(WriteLoop);
}

private void ReceiveLoop()
{
     while (true)
     {
         data = ReceiveData();
         _rwLock.EnterReadLock();
         _buffer.Add(data)
         _rwLock.ExitReadLock();
     }
}

private void WriteLoop()
{
     while (true)
     {
         _rwLock.EnterWriteLock();
         WriteToFile(_buffer);
         _rwLock.ExitWriteLock();
     }
}

你说的是调试器中的断点吗?如果是这种情况,调试器将在单步执行期间暂停并恢复所有线程。@BrianRasmussen是的,我说的是调试器。好吧,看来这是我错过的调试基础。如果是这样,那么我将在没有断点的情况下测试程序。谢谢。:)你可能也对我感兴趣,它将这种事情形式化。