我眼中委托的实质究竟是怎样的?

2026-05-25 08:510阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3897个文字,预计阅读时间需要16分钟。

我眼中委托的实质究竟是怎样的?

首先,我们以书中介绍的委托为例子来展开话题:在C或C++中,有时需要开启一个子线程,我们可以使用以下方法:

HANDLE hThread; // 子线程句柄DWORD ThreadID; // 子线程IDhThread=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, NULL, 0, &ThreadID);

首先我们以书中所介绍的委托的由来为起始点展开话题:

在C或C++中有时为了开启一个子线程,我们会用到如下的方法:

HANDLE hThread;

DWORD ThreadID;

hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc,NULL,0,&ThreadID);

以上语句中的ThreadFunc()为C++中的一个全局方法。因为C++或者C语言都是允许面向过程的,因此全局函数是可以存在的。但大家不妨试想一下,如果是C#或者Java这种纯面向对象的语言,我们要怎么做呢?

思考一下,在C#中你可以用如下的代码来实现相同的效果吗?

Tread subTread = new Tread();

subTread.Start(EntryPoint);

这样做是明显不对的!在C++中函数名EntryPoint实际上就是一个全局函数指针,它表明了子线程的入口地址。

阅读全文

本文共计3897个文字,预计阅读时间需要16分钟。

我眼中委托的实质究竟是怎样的?

首先,我们以书中介绍的委托为例子来展开话题:在C或C++中,有时需要开启一个子线程,我们可以使用以下方法:

HANDLE hThread; // 子线程句柄DWORD ThreadID; // 子线程IDhThread=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc, NULL, 0, &ThreadID);

首先我们以书中所介绍的委托的由来为起始点展开话题:

在C或C++中有时为了开启一个子线程,我们会用到如下的方法:

HANDLE hThread;

DWORD ThreadID;

hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFunc,NULL,0,&ThreadID);

以上语句中的ThreadFunc()为C++中的一个全局方法。因为C++或者C语言都是允许面向过程的,因此全局函数是可以存在的。但大家不妨试想一下,如果是C#或者Java这种纯面向对象的语言,我们要怎么做呢?

思考一下,在C#中你可以用如下的代码来实现相同的效果吗?

Tread subTread = new Tread();

subTread.Start(EntryPoint);

这样做是明显不对的!在C++中函数名EntryPoint实际上就是一个全局函数指针,它表明了子线程的入口地址。

阅读全文