我在c#想用CreateThread创建多线程
[DllImport( "kernel32.dll", SetLastError=true )]
private static extern int CreateThread( ref SECURITY_ATTRIBUTES lpThreadAttributes, int dwStackSize, ref int lpStartAddress, ref object lpParameter, int dwCreationFlags, ref int lpThreadId );
但是这个ref int lpStartAddress参数不知道怎么穿阿?我知道它是指向一个函数的地址

解决方案 »

  1.   

    你调用的这个API我在VC中用过,但在C#我都是创建一个辅助线程的。
    System.Threading.Thread t=new Thread(new System.Threading.ThreadStart(Precess()));
    t.Start();
    Process()是你的处理函数,你可以在里面编写你要处理的代码;你可以试试
      

  2.   

    谢谢,你说的代码我测试过了,但是不能实现我的功能,所以我就考虑用api来显示
    但是不知道在c#怎么调,我要实现的功能就是新开一个线程去扫墓证件!
      

  3.   

    按说是可以的啊。实在不行你可以考虑用VC了,VC创建辅助线程我知道怎么用
      

  4.   

    不行啊,我这个程序用C#开发的,在delphi里就可以通过CreateThread实现多线程扫描,但是在C#里用Thread类不能实现我需要的功能,我想用api来做,但是不知道怎么得到函数指针!!!
      

  5.   

    如果是多线程的话
    independently(我是风筝高高飞)
    的方法是对的,C#中的多线程的标准用法
    你说的那个参数是函数的地址指针,在C#中没有这样的类型,但是Delegate相当于函数指针的作用,你可以用它来解决你的问题……
      

  6.   

    哦。参数传递你就多测试几次,总能找到解决方法的!你可以在网上搜搜,尤其是一些外国论坛,或许能找到你要的东西。http://www.codeproject.com