程序如下
using System;
using System.Diagnostics;
using System.Threading;
using System.Runtime.Remoting.Messaging;namespace ConsoleApplication2
{
//异步委托提供以异步方式调用同步方法

/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
static int i;

public delegate void ProcessBoolDelegate(int i,ref int j);
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
ProcessBoolDelegate a= new ProcessBoolDelegate(changeInt);
int j = 0;

AsyncCallback ac = new AsyncCallback(FactorizedResults);
object c = new object();
IAsyncResult ar = a.BeginInvoke(3,ref j,ac,c);
}
public static void  changeInt(int i,ref int j)//该异步方法是简单计算并赋值
{
Class1.i = i;
j = i;
}

public static void FactorizedResults(IAsyncResult ar)
{

int j = 0;
ProcessBoolDelegate pbd = (ProcessBoolDelegate)((AsyncResult)ar).AsyncDelegate;
pbd.EndInvoke(ref j,ar);
Console.Write("Sequential : Factors of {0} ",j);
Console.Read();
}

}
}//////////////////////////////
想在屏幕上显示异步调用的结果,但异步调用在主线程main之后调用完毕,因此得不到我想要的结果,想请教这两个线程如何进行通讯,让异步调用完成后,主线程结束