摘要: 以下内容来自B站老杨 Marshaling的解释:将C#类中的数据转换成Json数据格式,这个就是Marshaling。 而Thread Marshaling的意思就是将一个线程中的数据传递到另一个线程中。 例子: 输出: 阅读全文
posted @ 2021-01-20 17:02 ZedFFF 阅读(98) 评论(0) 推荐(0)
摘要: 以下内容来自B站老杨 例子:现在有这样一个程序 点击执行后会进入Work,然后修改UI线程内容,这里会造成UI线程的假死,因为是在主线程上处理的耗时操作。 如果将上面的注释代码放开,那么会直接报错,因为在其他线程上去修改UI线程的内容,这是不被允许的。 因此正确的写法应该这样写: 这样就不会阻塞主线 阅读全文
posted @ 2021-01-20 16:36 ZedFFF 阅读(81) 评论(0) 推荐(0)
摘要: 以下内容来自B站老杨 结果: 信号在打开后会处于打开状态,可以使用signal.Reset()方法将其再次关闭。 阅读全文
posted @ 2021-01-20 16:20 ZedFFF 阅读(84) 评论(0) 推荐(0)
摘要: 以下内容来自B站老杨 阅读全文
posted @ 2021-01-20 16:17 ZedFFF 阅读(70) 评论(0) 推荐(0)
摘要: 以下内容来自B站老杨 例子: 这里我们手动创建了一个线程,那么这个线程就是一个前台线程,如果用户有输入,那么就将其变为后台线程。 输出: 第二次给参数,直接就没有默认的前台线程,程序就直接结束运行了。 阅读全文
posted @ 2021-01-20 16:03 ZedFFF 阅读(61) 评论(0) 推荐(0)
摘要: 以下内容来自B站老杨 例子: Start接受的是一个object类型的参数,因此在Print函数内部需要对参数进行拆箱操作。 这里的i被当做了共享变量,i在循环周期内指向的都是同一个内存的地址。 输出结果 使用临时变量控制共享变量的问题 输出结果: 但是这样并不能保证输出的顺序性。 异常处理: 修改 阅读全文
posted @ 2021-01-20 15:39 ZedFFF 阅读(111) 评论(0) 推荐(0)
摘要: 后一句的话的理解就是CPU不再给阻塞的线程分配时间片也就是处理资源,线程就是干等着。 线程状态的枚举: 线程的运行中产生的几种状态图解: 上面的代码展示了如果线程不是或的那个三个状态就是running状态。 解除阻塞的四种方法: 上下文切换的概念: I/O-bound和CPU-bound概念 就以上 阅读全文
posted @ 2021-01-20 11:13 ZedFFF 阅读(187) 评论(0) 推荐(0)
摘要: 以下内容来自B站老杨 Join方法: 也就是说在主线程中开辟了一个新线程,新线程调用了join方法,那么主线程会等待新线程中的方法执行完成后再继续往下执行。 例子: 结果: 再一个例子: 输出结果: Join的第二种用法 例子: Work方法写个Sleep或者模拟其它耗时操作即可。 Sleep方法: 阅读全文
posted @ 2021-01-20 10:35 ZedFFF 阅读(153) 评论(0) 推荐(0)
摘要: 以下内容全部来自于B站老杨- https://space.bilibili.com/361469957/video 这里作为学习笔记记录。 线程的概念: 单线程应用: 多线程应用: 这幅图展示了四种程序状态: 用WPF的例子解释为什么需要多线程: 如果在UI界面的主线程读数据,那么耗时10s的读数据 阅读全文
posted @ 2021-01-20 10:10 ZedFFF 阅读(79) 评论(0) 推荐(0)