我有一个线程,我写入2个流。问题是线程被阻塞,直到第一个完成写入(直到所有数据都在管道的另一侧传输),我不希望这样。有没有办法让它异步? chunkOutput是一个填充了多个线程数据的字典,因此检查现有密钥的速度越快,管道写入的速度就越快。
void ConsumerMethod(object totalChunks) {
while(true) {
if (chunkOutput.ContainsKey(curChunk)) {
if (outputStream != null && chunkOutput[curChunk].Length > 0) {
outputStream.Write(chunkOutput[curChunk]); // <-- here it stops
}
ChunkDownloader.AppendData("outfile.dat",
chunkOutput[curChunk], chunkOutput[curChunk].Length);
curChunk++;
if (curChunk >= (int) totalChunks) return;
}
Thread.Sleep(10);
}
}