我们使用任何编程语言调用大漠COM插件的时候,对应线程的暂停恢复停止控制都是非常恐怖脆弱卡顿的,特别是线程里使用了循环,那就更无语了,目前解决这个问题的办法,一个是采用LUA来完成脚本内容编写,你可以参考 易语言lua脚本实现多线程游戏窗口控制;那么另外一个办法就是使用C#里的ManualResetEvent类来完成线程同步事件,传入 CancellationToken,可以方便快速的对线程暂停恢复停止,无论你是否采用了死循环,本套教程完美演示了这一点,同时采用了windows的消息机制,来更新listview里的线程状态。本套教程还支持无限创建线程,同时采用热键控制。你也可以先了解 基于C# Thread类的大漠多线程模板游戏实战
教程优点:
1.完全不用担心,游戏检测易语言
2.可以快速暂停恢复停止线程-能达到这种效果的只有易语言和LUA的结合
3.采用Task无限创建线程
4.采用windows消息机制对控件更新状态
5.引入热键控制线程的启动暂停恢复
6.了解一下Task
Task是在ThreadPool(线程池)的基础上推出的。是.NET Framework 4.0中引入的一个类,用于表示一个异步操作。它允许开发者以非阻塞的方式执行耗时的操作,从而提高应用程序的响应性和性能。可以简单看作相当于Thead+TheadPool,其性能比直接使用Thread要好太多。
优点:Task继承了ThreadPool的优点,同时提供了更为丰富和灵活的线程控制API,提供了一种简洁的异步编程模型,使得开发者能够更容易地编写、理解和维护异步代码。
这意味着对大漠COM对象的控制更加灵活迅速。
7.了解一下 CancellationToken (取消令牌)
使用线程状态标识替代过时suspend和resumn方法
Task创建的线程,当出现异常或手动人为提前终止时,已开启的异步线程其实依然在执行,这会耗掉大量的系统资源,通过CancellationToken 设置取消令牌,就可以随时暂停,继续,停止线程,
官网资源:
托管线程中的取消 - .NET | Microsoft Learn
https://learn.microsoft.com/zh-cn/dotnet/standard/threading/cancellation-in-managed-threads
8.可以无限创建线程
利用Task可以无限的创建任意多个线程,比如监控线程,副线程等等。从而更好的服务于主线程
9.采用Windows消息机制WndProc
我们知道,C#不允许不同的线程之家进行组件信息传递,在上一套中,我们采用了委托,本套我们采用Windows消息机制WndProc用于更新UI
10.注册热键方便脚本控制
本套采用了热键注册,实现一键控制脚本的开始,暂停,恢复,停止。
11.本套教程更多的直接调用API和代码实现控件的控制,让你更多的了解C#
课程目录:
1.程序创建及界面UI设计
2.窗口启动事件代码控制窗口居中及大小标题图标
3.窗口关闭事件添加关闭对话框
4.定义一个常量类CommonClass
5.C#调用系统ShellExecute 实现启动游戏RunGame
6.封装StrtGame实现一键启动任意数量的游戏
7.C#限定TextBox只能输入整数
8.调用系统EnumWindows和GetWindowTextW和GetClassNameW和GetWindowThreadProcessId
9.大漠类库生成obj.cs并添加到C#
10.建立一个multiThread类并定义一个线程状态(ThreadState)枚举
11.定义一个窗口信息类(WindowInfo)_
12.获取所有游戏窗口列表信息GetAllDesktopWindows
13.C#封装一个日志输出类
14.获取游戏窗口进程ID (GetProcessID)
15.封装根据进程ID结束游戏进程(KillProcExec)
16.一键关闭所有游戏进程
17.增加线程运行中不准关闭游戏的判断及关闭游戏Bug处理
18.读取所有游戏窗口信息到ListView列表
19.C#面注册调用大漠
20.大漠全局初始化设置及时钟显示大漠对象及版本的实现
21.C#封装异步通知(用于线程通知UI) PostMessageW
22.C#封装同步通知(用于UI更新) SendMessageW
23.C#封装热键注册RegisterHotKey
23.C#封装注销热键UnregisterHotKey
24.C#定义ManualResetEvent类用来控制线程暂停恢复【核心代码】
25.线程状态代码转文本ThreadStateToString
26.C#实现窗口消息事件WndPro
27.C#通过消息事件实现热键操作
28.热键注册失败BUG处理
29.C#采用委托delegate封装UpdateUI实现向窗口ListView发送消息
30.C#封装UpdateUI
31.给同步和异步里窗口主句柄变量初始化赋值
32.启动线程StartThread
33.线程暂停PasueThread
34.恢复线程ResumeThread
35.关闭线程StopThread
36.脚本主线程MainThread
37.脚本副线程SubThrea
38.脚本任务子线程DoWork测试大漠按键
39.刷新窗口功能的实现
40.测试线程控制全部暂停恢复和停止(急速实现)核心特点
41.副线程检测异常的实现
42.测试热键对线程的启动暂停恢复停止的控制
43.C#使用out调用大漠变参指针X,Y以及脚本代码的实现
44.测试找字OCR时时显示角色左边脚本工作线程序号的传递
45.生成Release配置脚本程序信息【结课】
46. 基于C#Task类的大漠多线程模板视频演示说明
收费说明:
本教程为C#多线程大漠系列,共有两套,共398元。特别说明,否则勿扰。
购买教程提供相应的售后。
付费方法:
微信:zcp528
支付宝:zcp528@163.com
511遇见视频教程扫码支付页面:http://www.511yj.com/511-yj-pay.html
唯一联系QQ:272586593
官网地址:http://www.511yj.com/
解压密码:
www.511yj.com
下载地址和提取码:
链接: 购买后提供
提取码: