using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace ConsoleApplication7
{
public delegate void TestThread(int x, string str);
class TestClass
{
public void TestThreadF(int x, string str)
{
Thread.Sleep(x);
Console.WriteLine(str);
}
}
class Program
{
public static void Main(string[] args)
{
TestClass ThreadC = new TestClass();
TestThread Test = new TestThread(ThreadC.TestThreadF);
//int j = int.Parse(Console.ReadLine());
// string str = Console.ReadLine();
IAsyncResult Result = Test.BeginInvoke(10000, "BeginInVoke", null, null);//새로운 쓰래드 생성
//10000, "BeginInVoke" 는 TestThreadF의 인자값
Test.Invoke(1000, "InVoke");//현재 큐안에 집어넣음
for (int i = 0; i < 10; i++)
{
Console.WriteLine("TestMainThread");
}
Test.EndInvoke(Result);//Test.BeginInvoke가 끗날때끼지 대기.
//Thread.Sleep(10000);
//Test.EndInvoke;
//string str2 = Test.EndInvoke(Result);
//Console.WriteLine(str2.ToString());
}
}
}
------------------------------------------------------------------------------------------------
using System.Threading;
class CUser
{
WaitCallback async;
IAsyncResult ar;
public void Start()
{
async = new WaitCallback(OnThread);
ar = async.BeginInvoke(this, null, null);
}
public void Wait()
{
if (async != null)
async.EndInvoke(ar);
}
void OnThread (object state)
{
Console.WriteLine("작업시작");
// 작업처리
Thread.Sleep(3000);
Console.WriteLine("작업종료");
}
}
[출처] BeginInvoke를 사용하는 비동기 처리|작성자 프리데브
[출처] BeginInvoke 와 Invoke|작성자 제네식암흑햏자
'Visual Basic.Net' 카테고리의 다른 글
VB 함수정리 (0) | 2012.11.25 |
---|---|
Visual Basic에서 사용하는 데이터 형식 (2) | 2012.11.25 |
ByRef와 ByVal 의 차이점, 그리고 어떨떄 써야할까? (0) | 2012.11.23 |
InitializeComponent() (0) | 2012.11.23 |
선언시 As New 와 As 그리고 New (0) | 2012.11.23 |