小编use*_*455的帖子

如何获取传递给CancelSynchronousIO的线程句柄?

以正常方式在C#中创建后台线程 -

Thread t = new Thread(....);
t.IsBackground = true;
t.Start();
etc etc
Run Code Online (Sandbox Code Playgroud)

想要CancelSynchronousIO从主线程调用取消后台线程上的阻塞IO调用.不知道如何以IntPtr的形式获取线程句柄以传递给函数:

[DllImport("kernel32.dll", SetLastError=true)]
static extern bool CancelSynchronousIo(IntPtr threadHandle);
Run Code Online (Sandbox Code Playgroud)

似乎有各种方法来获取线程ID,但不是句柄?获取线程ID的方式似乎只在托管环境中提供了一个ID,所以没有用于PInvoke调用?我猜我错过了什么.

我是否需要执行其他PInvoke调用以获取线程句柄或者是否有更简单的方法?

c# multithreading

8
推荐指数
1
解决办法
2210
查看次数

标签 统计

c# ×1

multithreading ×1