Stream.BeginWrite 메서드
비동기 쓰기 작업을 시작합니다.
네임스페이스: System.IO
어셈블리: mscorlib(mscorlib.dll)
구문
‘선언
Public Overridable Function BeginWrite ( _
buffer As Byte(), _
offset As Integer, _
count As Integer, _
callback As AsyncCallback, _
state As Object _
) As IAsyncResult
‘사용 방법
Dim instance As Stream
Dim buffer As Byte()
Dim offset As Integer
Dim count As Integer
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult
returnValue = instance.BeginWrite(buffer, offset, count, callback, state)
public virtual IAsyncResult BeginWrite (
byte[] buffer,
int offset,
int count,
AsyncCallback callback,
Object state
)
public:
virtual IAsyncResult^ BeginWrite (
array<unsigned char>^ buffer,
int offset,
int count,
AsyncCallback^ callback,
Object^ state
)
public IAsyncResult BeginWrite (
byte[] buffer,
int offset,
int count,
AsyncCallback callback,
Object state
)
public function BeginWrite (
buffer : byte[],
offset : int,
count : int,
callback : AsyncCallback,
state : Object
) : IAsyncResult
매개 변수
- buffer
데이터를 쓸 버퍼입니다.
- offset
쓰기를 시작할 buffer의 바이트 오프셋입니다.
- count
쓸 최대 바이트 수입니다.
- callback
쓰기가 완료되면 호출되는 선택적 비동기 콜백입니다.
- state
다른 요청에서 특정 비동기 쓰기 요청을 구별하는 사용자 제공 개체입니다.
반환 값
보류 중인 비동기 쓰기를 나타내는 IAsyncResult입니다.
예외
예외 형식 | 조건 |
---|---|
스트림의 끝을 넘어 비동기 쓰기를 시도했거나 디스크 오류가 발생한 경우 |
|
하나 이상의 인수가 잘못된 경우 |
|
스트림이 닫힌 후 메서드가 호출된 경우 |
|
현재 Stream 구현이 쓰기 작업을 지원하지 않는 경우 |
설명
파일을 만들고 파일에 텍스트를 쓰는 방법에 대한 예제를 보려면 방법: 파일에 텍스트 쓰기를 참조하십시오. 파일에서 텍스트를 읽는 방법에 대한 예제를 보려면 방법: 파일의 텍스트 읽기를 참조하십시오. 이진 파일을 읽거나 쓰는 방법에 대한 예제를 보려면 방법: 새로 만든 데이터 파일 읽기 및 쓰기를 참조하십시오. 비동기 파일 I/O에 대한 예제를 보려면 비동기 파일 I/O를 참조하십시오.
스트림에서 BeginWrite의 기본 구현은 Write 메서드를 동기적으로 호출하므로 Write가 일부 스트림에서 차단될 수 있습니다. 그러나 FileStream과 NetworkStream 같은 클래스의 인스턴스는 비동기적으로 열려 있을 경우 비동기 작업을 충분히 지원합니다. 따라서 BeginWrite를 호출하면 해당 스트림에서 차단되지 않습니다. BeginWrite를 재정의하여(예: 비동기 대리자를 사용하여 재정의) 비동기 동작을 제공할 수 있습니다.
현재 메서드에서 반환된 IAsyncResult를 EndWrite에 전달하여, 쓰기를 완료하고 리소를 적절하게 해제해야 합니다. EndWrite는 BeginWrite를 호출할 때마다 한 번씩 호출해야 합니다. 이 작업은 BeginWrite를 호출한 코드와 동일한 코드를 사용하여 수행하거나 BeginWrite에 전달된 콜백에서 수행할 수 있습니다. 비동기 쓰기 도중 오류가 발생할 경우, 이 메서드에서 반환된 IAsyncResult와 함께 EndWrite가 호출되기 전에는 예외가 throw되지 않습니다.
스트림에 쓸 수 있는 경우 끝에 쓰면 해당 스트림이 확장됩니다.
I/O 작업이 완료될 때가 아니라 비동기 읽기 또는 쓰기를 실행할 때 스트림의 현재 위치가 업데이트됩니다. 비동기 요청을 동시에 여러 번 시도하면 요청 완료 순서가 불확실해집니다.
현재 인스턴스가 쓰기를 지원하는지 여부를 결정하려면 CanWrite 속성을 사용합니다.
스트림이 닫혀 있거나 잘못된 인수를 전달하는 경우 BeginWrite에서 즉시 예외가 throw됩니다. I/O 요청 중에 발생하는 디스크 오류와 같이 비동기 쓰기 요청 중에 발생하는 오류는 스레드 풀 스레드에서 발생하며 EndWrite 호출 시 예외를 throw합니다.
플랫폼
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
2.0, 1.1, 1.0에서 지원
.NET Compact Framework
2.0, 1.0에서 지원
참고 항목
참조
Stream 클래스
Stream 멤버
System.IO 네임스페이스
EndWrite
CanWrite