using System;
using System.Reflection;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Class1
{
public static List<string> list = new List<string>();
public delegate void AsyncEventHandler();
static void test()
{
Console.WriteLine("1111111111");
}
[STAThread]
static void Main(string[] args)
{
AsyncEventHandler asy = new AsyncEventHandler(test);
IAsyncResult ia = asy.BeginInvoke(null, null); asy.EndInvoke(ia); Console.ReadLine();
}
}
}上面是一段简单的异步代码!!
其实我想实现的功能是每次调用BeginInvoke都会自动执行list.Add,
而不是把list.Add写在BeginInvoke下面,由于里面有委托等等,不知从哪里下手,
所以来问前辈们,谢谢
不写在下面 那就写在前面再写一个委托 实现自动执行list.Add,
将这个函数委托写在调用BeginInvoke的前面
using System.Reflection;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Class1
{
public static List<string> list = new List<string>();
public delegate void AsyncEventHandler();
static void test()
{
Console.WriteLine("1111111111");
}
[STAThread]
static void Main(string[] args)
{
AsyncEventHandler asy = new AsyncEventHandler(test);
IAsyncResult ia = asy.BeginInvoke((o)=>{ asy.EndInvoke(o)},null);//这是最简单的 直接把 EndInvoke(o);写到结束时调用的方法中就可以了..不过呢,这种情况一般都是 有返回值时才有必要用到否则可以省略. Console.ReadLine();
}
}
}