csharp 此代码用于同步和异步模式下的io编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 此代码用于同步和异步模式下的io编程相关的知识,希望对你有一定的参考价值。

string StartDirectory = @"D:\temp\source";
string EndDirectory = @"D:\temp\destination";

private async void btnStartAsync_Click(object sender, EventArgs e)
{
	foreach (string filename in Directory.EnumerateFiles(StartDirectory))
	{
		using (FileStream SourceStream = File.Open(filename, FileMode.Open))
		{
			var destFilePath = EndDirectory + filename.Substring(filename.LastIndexOf('\\'));
			using (FileStream DestinationStream = File.Create(destFilePath))
			{
				await SourceStream.CopyToAsync(DestinationStream);
			}
		}
	}
}

private void btnStartSync_Click(object sender, EventArgs e)
{
	foreach (string filename in Directory.EnumerateFiles(StartDirectory))
	{
		using (FileStream SourceStream = File.Open(filename, FileMode.Open))
		{
			using (FileStream DestinationStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf('\\'))))
			{
				SourceStream.CopyTo(DestinationStream);
			}
		}
	}
}

以上是关于csharp 此代码用于同步和异步模式下的io编程的主要内容,如果未能解决你的问题,请参考以下文章

进阶学习5:JavaScript异步编程——同步模式异步模式调用栈工作线程消息队列事件循环回调函数

JavaScript异步编程

Reactor和Proactor模式的讲解(关于异步,同步,阻塞与非阻塞)

5种IO模型阻塞IO和非阻塞IO同步IO和异步IO

同步/异步/阻塞/非阻塞

JavaScript中异步编程的工作模式 --- 同步模式/异步模式||异步的EventLoop消息队列