分类:
.Net技术
◆
标签:
#异步编程
#基础
#.Net
◆
发布于: 2025-02-17 17:50:47
.Net使用async和await两个关键字来简化异步编程,不过需要注意的是:
异步编程不是并行编程,和我们提到的多线程编程虽然有联系,但是异步编程不是多线程的那种多任务编程。
异步编程要注意编程任务是基于CPU计算多,还是基于IO多,特别是在基于Asp.net Core Genric Host进行后端服务编程时(例如:写基于Windows或者基于Linux的服务程序,不是指Web编程),特别需要注意区分你的任务是基于IO的还是基于CPU计算的任务。基于CPU计算的任务都需要Task.Factory.new放入runtime的线程池中运行。
在基础的编程模型中我们有多进程,多线程分别利用的是CPU的特性,例如分时CPU,多核等等,但是还有一个概念就是可阻塞IO的模型,可以将
Read more
分类:
.Net技术
◆
标签:
#基础
#.Net
◆
发布于: 2023-08-07 22:28:33
为了快速的通过代码学习Azure的.Net SDK或者API, 我们可以配置Jupyter notebook、Jupyter lab或者VS Code交互式的使用.Net, 这样不用写很多代码,而且可以快速的演示和学习功能,我们下面来介绍如何安装和配置这个工具。
安装jupyter
首先我们需要安装一个Python, 这个很好理解,因为jupyter是基于python的。
您可以从https://www.python.org下载适合您平台的python版本并安装,安装好了之后,打开管理员终端(在Windows下), 如果是Linux,则使用sudo。
使用如下的命令来安装Jupyter notebook和jupyter lab:
Read more
分类:
.Net技术
◆
标签:
#异步编程
#基础
#.Net
#WPF
◆
发布于: 2023-08-07 22:04:07
熟悉Asp.net Core的同行应该都非常了解它的Host模型,特别是Generic Host,Host将一系列的功能全部压缩的这个模型里,这包括依赖注入,配置管理,日志管理,生命周期管理等等。如果你想对Host多了解一下,您可以参考如下的文档:
Read more
分类:
.Net技术
◆
标签:
#异步编程
#.Net
#基础
◆
发布于: 2023-08-07 22:00:48
我喜欢.Net的最大原因就是.Net是真的提供了很多工具简化编程的难度,并提供了健壮性。尤其是异步编程模式的提出。
.Net使用async和await两个关键字来简化异步编程,不过需要注意的是:
异步编程不是并行编程,和我们提到的多线程编程虽然有联系,但是异步编程不是多线程的那种多任务编程。
异步编程要注意编程任务是基于CPU计算多,还是基于IO多,特别是在基于Asp.net Core Genric Host进行后端服务编程时(例如:写基于Windows或者基于Linux的服务程序,不是指Web编程),特别需要注意区分你的任务是基于IO的还是基于CPU计算的任务。基于CPU计算的任务都需要Task.Factory.new放入runtime的线程池中运行。
在基础的编程模型中我
Read more
分类:
.Net技术
◆
标签:
#异步编程
#.Net
#MVVM
◆
发布于: 2023-08-07 21:30:33
今天找到了几篇非常好的文章,这些文章集中讨论了MVVM模式的编程,一一分享给大家。
本篇讨论在WPF & Net MAUI & WinUE3 MVVM项目中使用Async & await进行多任务编程,是基于大牛Stephen Cleary于2014年3月份左右发表的博客。原始页面已经找不到了,进入了微软MSDN杂志的存档了。
之前在网络上搜索了不少文章,这些文章讨论如何在UI环境中使用多线程时无一例外的都是利用例如wpf的dispatcher将长时间运行的线程放置到后台线程中,并通过Dispatcher来更新UI, UI线程无需等待。看到这些代码我都有一个问题,为什么不可以直接使用async/await而避免使用dispatcher来配合多任务编程呢?找了不少方案,自己也尝试设
Read more
分类:
.Net技术
◆
标签:
#Azure
#.Net
#Virtual Host
#Web
◆
发布于: 2023-06-15 16:00:44
我们前一篇讨论我们的工具的选择,这篇开始我们就开始开工了,我们先来创建Azure的资源,为了契合我们使用Azure的理念,使云管理人员也参与到整个系统的架构中来, 我们使用脚本工具来帮助管理员创建基于Azure的资源,这样可以将创建和管理资源的脚本使用github管理起来,方便未来可以快速部署和快速扩充的需要。
先来看一下我们目标:
在本地创建脚本运行环境,并记录成文档。
使用脚本创建虚拟机,并设定虚拟机的公网地址为静态地址,方便网站域名的绑定。
使用脚本配置Network Security Group用来放行我们需要的端口。
使用脚本创建Azure Stoarge账户和一个用于备份的blob。
使用脚本创建Azure Cognitive Service资源,并保留创建的
Read more
分类:
.Net技术
◆
标签:
#基础
#.Net
#Azure
#Virtual Host
◆
发布于: 2023-06-15 15:57:06
学习Azure有长一段时间了,计划使用Azure来做一些有趣的事情,开始计划之前,我们先可以想想Azure可以帮我们完成哪些事情?
使用Azure的虚拟机或者应用服务可以快速搭建各种站点,例如Web站点,FTP站点,邮件列表等等传统的互联网项目。
使用Azure的AI技术可以快速搭建各种人脸识别,语音识别,以及配音等新兴的项目。
使用Azure的物联网技术可以快速让自己的设备随时连上自己创建的小型物联网,可以升级自己家里的智能家居。
使用Azure的Media Service可以快速搭建直播项目。
使用Azure的机器人服务创建一个聊天机器人。
......
Read more
分类:
.Net技术
◆
标签:
#基础
#.Net
#.Net Host
◆
发布于: 2023-06-15 15:50:50
.Net Host 模型编程指南文章列表
Read more
分类:
.Net技术
◆
标签:
#基础
#.Net
#.Net Host
◆
发布于: 2023-06-15 15:46:11
我们前面一篇文章里学习了怎么快速的设置一个Host, 并且介绍了在设置Host的每一步里每个方法需要完成哪些配置或者动作,我们这一章来学习.Net基于Host模型提供了哪些服务和接口,这些服务和接口是如何方便用户使用的。
Host提供的服务
我们前面介绍了当设置一个Host时会自动创建一个依赖注入容器,同时作为一个框架也会随着容器的创建并自动注入一相应的服务,主要有如下的服务:
IHostApplicationLifeTime
IHostLifetime
IHostEnvironment
IHostApplicationLifetime
Read more
分类:
.Net技术
◆
标签:
#基础
#.Net Host
#.Net
◆
发布于: 2023-06-15 15:44:03
我们前面使用.Net的Worker模板实现.Net Host的服务模型的时候,都使用了BackgroundService这个抽象类,如果想对于自己的后端应用有更多的定制,可以从接口IHostedService直接继承,然后实现更多的细节,我们这个实例直接实现接口IHostedService以及接口IAsyncDisposable, 同时向.Net Host模型注册服务都是使用的相同的扩展方法AddHostedService<T>()方法。
我们这一节实现使用System.Threading.Timer来实现一个定时的任务。
Read more