![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
.net
文章平均质量分 84
Huey-Chan
桃李不言,下自成蹊。
展开
-
简单的.NET三层框架的实现(学生作业管理系统)
三层架构,也有人叫做三层结构,是一种软件架构。三层架构主要包括了表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这样的方式将软件开发进行分层,每层之间的分工是相对的比较明确的,而且很容易去理解。一般客户端不是直接与数据库进行交互的,而是与中间层(业务逻辑层)建立的连接。三层架构不只适用于在web当中的开发,在别的一些地方也是很有多用途的。我这里将会以我自己写的一个ASP.NET三层架构...原创 2015-07-14 22:29:24 · 9918 阅读 · 3 评论 -
.net利用委托BeginInvoke和EndInvoke实现异步编程
最近看书,看到了可以利用学过的委托知识实现异步编程,这里做一个简单的说明示例。如果委托对象在调用列表中只有一个方法(引用方法),他就可有异步执行这个方法。委托类有两个方法,BeginInvoke和EndInvoke。当我们调用委托的BeginInvoke方法时,它开始在一个独立线程上执行引用方法。并且立即返回到原始线程。原始线程可以继续。而引用方法会在线程池中的线程中并行执行。当程序希望获取已完成...原创 2018-04-06 04:01:04 · 1886 阅读 · 0 评论 -
.NET中的简单的并行循环Parallel.For和Parallel.ForEach
这里简单的介绍一下.net中的任务并行库。简单的并行循环Parallel.For和Parallel.ForEach。我们常见的for和foreach循环分别对应并行循环Parallel.For和Parallel.ForEach。参考文档:https://msdn.microsoft.com/zh-cn/library/system.threading.tasks.parallel_methods(...原创 2018-04-05 22:01:27 · 2942 阅读 · 0 评论 -
.net通过BackgroundWorker类实现多线程编程
前面学习了async/await特性来异步处理任务,BackgroundWorker可以在需要另建一个线程,并且后台持续的完成某项工作,而且可以和主线程进行交互通信。参考文档:https://msdn.microsoft.com/zh-cn/library/system.componentmodel.backgroundworker.aspx代码示例: class Program {...原创 2018-04-05 19:56:54 · 290 阅读 · 0 评论 -
.net中Task.Yield和Task.Delay说明
书上看到一个Task.Yield例子,Task.Yield方法创建一个立即返回的awaitable。等待一个Yield可以让异步方法在执行后续的部分时返回到调用方法。可以理解为离开当前的消息队列,回到队列末尾,让处理器有时间处理其他任务。Yield方法在GUI编程中非常的有用,可以中断大量的工作,让其他任务使用处理器。看下面的代码:static void Main(string[] args){...原创 2018-04-05 18:24:58 · 3656 阅读 · 0 评论 -
.net中Task.WhenAll和WhenAny异步的等待Task完成
前面讲了Task.WaitAll和WaitAny同步的等待Task完成,在异步方法中,我们希望用await表达式等待Task,这里使用Task.WhenAll和WhenAny方法来实现等待一个或者多个任务完成。修改Main函数,添加一个异步方法,代码如下:static void Main(string[] args){ string[] urls = { "https://stackov...原创 2018-04-05 17:05:52 · 10648 阅读 · 1 评论 -
.net中Task.WaitAll和WaitAny同步的等待Task完成
前面讲了《.net中async/await异步编程》,如果方法中使用了多个异步方法,该如何同步的等待Task完成?Task.WaitAll 等待提供的所有 System.Threading.Tasks.Task 对象完成执行过程。DownLoadTest dwtest = new DownLoadTest();CancellationTokenSource cts = new Cancellat...原创 2018-04-05 16:29:27 · 9790 阅读 · 0 评论 -
asp.net mvc 中使用async/await异步编程
已经介绍过async/await异步编程,但是按照一般的异步编程的步骤,在asp.net mvc页面中使用异步编程好像会经常报一个错误,错误信息如下:现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,或在页生存期中的特定事件过程中开始。如果此异常在执行 Page 时发生,请确保 Page 标记为 <%@ Page Async="true" %>。此异常也可能表明试图调用“异...原创 2018-04-04 16:46:12 · 10201 阅读 · 0 评论 -
.net中async/await异步编程
C#5.0中引入了构建异步方法的新特性---async/await。本文根据自己的理解讲述异步方法三种返回方式和取消异步操作的示例。在此之前先说说异步方法的语法特点:方法名称一般是Async 结尾。可以包含一个或者多个await表达式。异步方法的参数不能使用ref和out参数。方法头包含async关键字,并且在返回类型之前。除了方法之外, Lambda 表达式和匿名函数也可以作为异步对象。先来看看...原创 2018-04-03 19:20:11 · 10519 阅读 · 0 评论 -
简述C#中浅复制和深复制
引用类型直接进行“=”来复制是不可以的,简单的复制成员可以通过派生在System.Object中的MemberwiseClone()方法来完成。这是一个受保护的方法。我们简单的代码实现如下: public abstract class Animal { public string Name { get; set; } public double Wei...原创 2018-03-27 01:35:32 · 230 阅读 · 0 评论 -
C#中的is和as运算符
is运算符有些类型之间的转换并不是能够转换成功,强制的转换反而会抛出一些异常,那么,可以使用is运算符来检查转换是否可以转换成功。is的语法如下:variable is NewType如果variable可以通过引用转换、装箱转换和拆箱转换的方式转换为NewType,那么运算符返回true。举例如下: class Animal { public string na...原创 2018-04-07 22:10:42 · 626 阅读 · 0 评论 -
ASP.net网站配置文件的读写管理
ASP.net网站配置文件的管理,系统需要设置一些配置参数,将这些参数保存在数据库显得过于的复杂,并且系统频繁的读取配置信息不合适,不便于以后的管理,显然保存在配置文件中是最好的方式了。后面需要对这些配置信息进行修改管理,管理员当然不希望参数每次去变时去直接修改网站根目录下的Web.config文件,要是能够另外的保存一个文件,并且其它的网站能够同时访问这个文件,直接进行修改就最好了。原创 2017-10-28 16:18:12 · 1207 阅读 · 0 评论 -
.net中计时器Timer类
计时器可以一种定时的方式异步的重复运行,这里简单的讲解举例一下System.Threading命名空间中的Timer类。参考文档:https://msdn.microsoft.com/zh-cn/library/system.threading.timer(v=vs.110).aspx计时器在固定的时间调用回调方法,回调方法必须是System.Threading.TimerCallback委托形式...原创 2018-04-06 12:50:36 · 1535 阅读 · 0 评论