- 博客(32)
- 收藏
- 关注
原创 VSCode 配置 Python+OpenCV
安装Anaconda3,不装在C盘。 在Anaconda3安装OpenCV资源包,OpenCV扩展包。 Anaconda虚拟环境设置。 安装VSCode。 在VSCode安装Python拓展。 设置VSCode的Python解释器为Anaconda3的Python。 解决执行策略受限问题。 在VSCode设置Python代码对齐,代码检测等参数。
2023-06-27 17:51:17
1597
原创 C# 多线程 异步编程 async和await
用async定义一个方法是属于异步执行的,该方法里必定要存在一个await表达式,await会将该方法挂起,执行表达式内的异步内容,直到异步内容执行完毕后,才会继续执行表达式后面的内容。.NET 4.5开始基于任务Task提供了async和await关键字,实现方法的异步执行。如果async定义的方法不包含await表达式,则该方法为同步方法,编译器会提供相关警告。
2023-06-12 19:08:40
324
原创 C# 多线程 BackgroundWorker
BackgroundWorker是一个基于事件的异步模式(EAP)的实现方式,用于管理工作线程。BackgroundWoker使用线程池,所以绝不允许调用Abort,否则会导致线程池异常。
2023-06-10 17:19:57
1772
原创 C# 多线程 任务并行Task
本质上,Task和ThreadPool使用的是同一个线程池,一般来说,Task效率更高点。Task也是Parallel类和PLINQ的基础。
2023-06-08 20:27:34
2510
原创 C# 多线程 异步委托BeginInvoke
异步委托解决了线程池不能返回值的问题,允许双向传递参数,同时可以在调用线程上抛出委托方法中未处理的异常。注:EndInvoke是必须的。相互学习,共同富裕。
2023-06-06 21:28:04
1311
原创 C# 多线程 信号量
信号量的作用类似银行的柜台,具有一定的数量,当柜台都已有顾客在办理事务时,后面的顾客只能排队等待某个柜台办理完结后再进入柜台。信号量需要设置最大的允许数量和当前的空位数量。容量为1的信号量即与 lock 和 Mutex 功能类似。
2023-06-06 20:49:01
350
原创 C# 多线程 同步锁
Mutex 继承自 WaitHandle ,可使用 WaitIOne 方法加锁,使用 ReleaseMutex 方法释放锁。Mutex 的作用与 lock 相似,不同的是 Mutex 支持跨进程工作,但是效率要比 lock 低。Monitor提供了同步访问对象的机制,通过成对的 Enter 和 Exit 方法对对象加锁。lock是一个语法糖,其实际即为上述Monitor的同步代码,简化了使用锁的代码量。Monitor也提供了一个TryEnter方法,允许指定获取锁的超时时间。相互学习,共同富裕。
2023-06-06 18:29:17
1241
原创 C# 多线程 线程池ThreadPool
通过 ThreadPool.QueueUserWorkItem(WaitCallback) 方法可以将需要异步运行的方法排入线程池的队列中。WaitCallback(Object) 是带有一个输入参数的委托。
2023-06-06 16:40:15
861
原创 C# 多线程 线程通信事件
.NET提供了用于线程之间通信的事件方法,继承结构如下图: 线程的阻塞与解除使用的方法如下图: 这里使用AutoResetEvent作为示例:相互学习,共同富裕。
2023-06-06 11:31:19
446
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人