Stream.CopyToAsync 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 스트림에서 모든 바이트를 비동기적으로 읽어 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다.
오버로드
CopyToAsync(Stream, Int32, CancellationToken) |
현재 스트림에서 바이트를 비동기적으로 읽어 지정된 버퍼 크기 및 취소 토큰을 사용하여 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다. |
CopyToAsync(Stream, CancellationToken) |
현재 스트림에서 바이트를 비동기적으로 읽어 지정된 취소 토큰을 사용하여 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다. |
CopyToAsync(Stream) |
현재 스트림에서 모든 바이트를 비동기적으로 읽어 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다. |
CopyToAsync(Stream, Int32) |
현재 스트림에서 바이트를 비동기적으로 읽어 지정된 버퍼 크기로 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다. |
CopyToAsync(Stream, Int32, CancellationToken)
- Source:
- Stream.cs
- Source:
- Stream.cs
- Source:
- Stream.cs
현재 스트림에서 바이트를 비동기적으로 읽어 지정된 버퍼 크기 및 취소 토큰을 사용하여 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다.
public:
virtual System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination, int bufferSize, System::Threading::CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
[System.Runtime.InteropServices.ComVisible(false)]
public virtual System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
abstract member CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
override this.CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
override this.CopyToAsync : System.IO.Stream * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Overridable Function CopyToAsync (destination As Stream, bufferSize As Integer, cancellationToken As CancellationToken) As Task
매개 변수
- destination
- Stream
현재 스트림의 내용을 복사할 스트림입니다.
- bufferSize
- Int32
버퍼의 크기(바이트)입니다. 이 값은 0보다 커야 합니다. 기본 크기는 81920입니다.
- cancellationToken
- CancellationToken
취소 요청을 모니터링할 토큰입니다. 기본값은 None입니다.
반환
비동기 복사 작업을 나타내는 작업입니다.
- 특성
예외
destination
이(가) null
인 경우
buffersize
가 음수이거나 0인 경우
현재 스트림이나 대상 스트림이 삭제됩니다.
현재 스트림이 읽기를 지원하지 않거나 대상 스트림이 쓰기를 지원하지 않습니다.
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
설명
메서드 CopyToAsync 를 사용하면 기본 스레드를 차단하지 않고 리소스 집약적 I/O 작업을 수행할 수 있습니다. 이 성능 고려 사항은 시간이 걸리는 스트림 작업이 UI 스레드를 차단하여 앱이 작동하지 않는 것처럼 보일 수 있는 Windows 8.x 스토어 앱 또는 데스크톱 앱에서 특히 중요합니다. 비동기 메서드는 Visual Basic 및 C#의 async
및 await
키워드와 함께 사용됩니다.
작업이 완료되기 전에 취소된 경우 반환된 작업에는 속성 값 Canceled 이 Status 포함됩니다.
복사는 현재 스트림의 현재 위치에서 시작됩니다.
두 스트림 간에 복사하는 예제는 오버로드를 CopyToAsync(Stream) 참조하세요.
이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 태스크에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw CopyTo(Stream, Int32)된 예외를 참조하세요.
적용 대상
CopyToAsync(Stream, CancellationToken)
- Source:
- Stream.cs
- Source:
- Stream.cs
- Source:
- Stream.cs
현재 스트림에서 바이트를 비동기적으로 읽어 지정된 취소 토큰을 사용하여 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다.
public:
System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, System.Threading.CancellationToken cancellationToken);
member this.CopyToAsync : System.IO.Stream * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function CopyToAsync (destination As Stream, cancellationToken As CancellationToken) As Task
매개 변수
- destination
- Stream
현재 스트림의 내용을 복사할 스트림입니다.
- cancellationToken
- CancellationToken
취소 요청을 모니터링할 토큰입니다. 기본값은 None입니다.
반환
비동기 복사 작업을 나타내는 작업입니다.
예외
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
설명
메서드 CopyToAsync 를 사용하면 기본 스레드를 차단하지 않고 리소스 집약적 I/O 작업을 수행할 수 있습니다. 이 성능 고려 사항은 시간이 걸리는 스트림 작업이 UI 스레드를 차단하여 앱이 작동하지 않는 것처럼 보일 수 있는 Windows 8.x 스토어 앱 또는 데스크톱 앱에서 특히 중요합니다. 비동기 메서드는 Visual Basic 및 C#의 async
및 await
키워드와 함께 사용됩니다.
작업이 완료되기 전에 취소된 경우 반환된 작업에는 속성 값 Canceled 이 Status 포함됩니다.
복사는 현재 스트림의 현재 위치에서 시작됩니다.
두 스트림 간에 복사하는 예제는 오버로드를 CopyToAsync(Stream) 참조하세요.
이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 태스크에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw CopyTo(Stream)된 예외를 참조하세요.
적용 대상
CopyToAsync(Stream)
- Source:
- Stream.cs
- Source:
- Stream.cs
- Source:
- Stream.cs
현재 스트림에서 모든 바이트를 비동기적으로 읽어 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다.
public:
System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination);
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination);
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination);
member this.CopyToAsync : System.IO.Stream -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.CopyToAsync : System.IO.Stream -> System.Threading.Tasks.Task
Public Function CopyToAsync (destination As Stream) As Task
매개 변수
- destination
- Stream
현재 스트림의 내용을 복사할 스트림입니다.
반환
비동기 복사 작업을 나타내는 작업입니다.
- 특성
예외
destination
이(가) null
인 경우
현재 스트림이나 대상 스트림이 삭제됩니다.
현재 스트림이 읽기를 지원하지 않거나 대상 스트림이 쓰기를 지원하지 않습니다.
예제
다음 예제에서는 두 FileStream 개체를 사용하여 한 디렉터리에서 다른 디렉터리로 파일을 비동기적으로 복사하는 방법을 보여 줍니다. FileStream 클래스는 Stream 클래스에서 파생됩니다. 컨트롤에 Click 대한 Button 이벤트 처리기는 비동기 메서드를 async
호출하므로 한정자로 표시됩니다.
using System;
using System.Threading.Tasks;
using System.Windows;
using System.IO;
namespace WpfApplication
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
string StartDirectory = @"c:\Users\exampleuser\start";
string EndDirectory = @"c:\Users\exampleuser\end";
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('\\'))))
{
await SourceStream.CopyToAsync(DestinationStream);
}
}
}
}
}
}
Imports System.IO
Class MainWindow
Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim StartDirectory As String = "c:\Users\exampleuser\start"
Dim EndDirectory As String = "c:\Users\exampleuser\end"
For Each filename As String In Directory.EnumerateFiles(StartDirectory)
Using SourceStream As FileStream = File.Open(filename, FileMode.Open)
Using DestinationStream As FileStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf("\"c)))
Await SourceStream.CopyToAsync(DestinationStream)
End Using
End Using
Next
End Sub
End Class
설명
메서드 CopyToAsync 를 사용하면 기본 스레드를 차단하지 않고 리소스 집약적 I/O 작업을 수행할 수 있습니다. 이 성능 고려 사항은 시간이 걸리는 스트림 작업이 UI 스레드를 차단하여 앱이 작동하지 않는 것처럼 보일 수 있는 Windows 8.x 스토어 앱 또는 데스크톱 앱에서 특히 중요합니다. 비동기 메서드는 Visual Basic 및 C#의 async
및 await
키워드와 함께 사용됩니다.
복사는 현재 스트림의 현재 위치에서 시작됩니다.
이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 태스크에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw CopyTo(Stream)된 예외를 참조하세요.
적용 대상
CopyToAsync(Stream, Int32)
- Source:
- Stream.cs
- Source:
- Stream.cs
- Source:
- Stream.cs
현재 스트림에서 바이트를 비동기적으로 읽어 지정된 버퍼 크기로 다른 스트림에 씁니다. 두 스트림 위치는 복사된 바이트 수에 따라 고급입니다.
public:
System::Threading::Tasks::Task ^ CopyToAsync(System::IO::Stream ^ destination, int bufferSize);
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize);
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize);
member this.CopyToAsync : System.IO.Stream * int -> System.Threading.Tasks.Task
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.CopyToAsync : System.IO.Stream * int -> System.Threading.Tasks.Task
Public Function CopyToAsync (destination As Stream, bufferSize As Integer) As Task
매개 변수
- destination
- Stream
현재 스트림의 내용을 복사할 스트림입니다.
- bufferSize
- Int32
버퍼의 크기(바이트)입니다. 이 값은 0보다 커야 합니다. 기본 크기는 81920입니다.
반환
비동기 복사 작업을 나타내는 작업입니다.
- 특성
예외
destination
이(가) null
인 경우
buffersize
가 음수이거나 0인 경우
현재 스트림이나 대상 스트림이 삭제됩니다.
현재 스트림이 읽기를 지원하지 않거나 대상 스트림이 쓰기를 지원하지 않습니다.
설명
메서드 CopyToAsync 를 사용하면 기본 스레드를 차단하지 않고 리소스 집약적 I/O 작업을 수행할 수 있습니다. 이 성능 고려 사항은 시간이 걸리는 스트림 작업이 UI 스레드를 차단하여 앱이 작동하지 않는 것처럼 보일 수 있는 Windows 8.x 스토어 앱 또는 데스크톱 앱에서 특히 중요합니다. 비동기 메서드는 Visual Basic 및 C#의 async
및 await
키워드와 함께 사용됩니다.
복사는 현재 스트림의 현재 위치에서 시작됩니다.
두 스트림 간에 복사하는 예제는 오버로드를 CopyToAsync(Stream) 참조하세요.
이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 태스크에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw CopyTo(Stream, Int32)된 예외를 참조하세요.
적용 대상
.NET