![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c#
文章平均质量分 84
conquerwave
这个作者很懒,什么都没留下…
展开
-
C#连接mysql
一、问题描述 看了几个帖子,都 重点在讲数据库操作,其中有一步添加dll不是很明白。此处讲的不是ODBC的方式二、软件环境 VS2010 C#, MYSQL 5.2【版本不重要】三、操作步骤 1.去orcale官网下载数据库驱动,地址【http://dev.mysql.com/downloads/connector/】原创 2013-10-02 20:42:11 · 725 阅读 · 0 评论 -
C# 并发队列ConcurrentQueue
测试函数static async Task RunProgram(){ var taskQueue = new ConcurrentQueue(); var cts = new CancellationTokenSource(); //生成任务添加至并发队列 var taskSource = Task.Run(() => TaskProducer(taskQu翻译 2016-03-08 21:26:50 · 26628 阅读 · 0 评论 -
C#5.0 以Task方式实现APM
基于事件的异步模式 (Event-based Asynchronous Pattern, EAP) 异步编程模型 (Asynchronous Programming Model, APM) 基于任务的异步模式 (Task-based Asynchronous Pattern, TAP)换个方式也就是说,将TAP实现原来Thread中的AutoResetEvent、ManualReset原创 2016-02-23 21:50:24 · 1152 阅读 · 0 评论 -
C# 无参属性 set与get
无参属性一开始我们的对象是这样的public sealed class Emplyee{ public string Name; public int Age;}原创 2016-03-09 21:37:26 · 666 阅读 · 0 评论 -
C# 5.0 以Task方式实现EAP
调用BackgroundWorker相关的方法以下代码参考自《Multithreading in C# 5.0 Cookbook》using System;using System.ComponentModel;using System.Threading;using System.Threading.Tasks;namespace EAPDemo{ class Pro原创 2016-02-24 22:00:11 · 1129 阅读 · 0 评论 -
C#5.0 采用CancellationTokenSource方式取消Task
贴一种取消任务的方式using System;using System.Threading;using System.Threading.Tasks;namespace CancellationDemo{ class Program { static void Main(string[] args) { var原创 2016-02-24 22:03:59 · 4443 阅读 · 0 评论 -
C# 5.0 Task中实现异常抛出
using System;using System.Threading;using System.Threading.Tasks;namespace ExceptionsDemo{ class Program { static void Main(string[] args) { Task task;原创 2016-02-25 20:05:37 · 3763 阅读 · 0 评论 -
C# 5.0 使用任务调试表TaskScheduler来运行task
示例效果与winform中this.invoke(new delegete{})跨线程操作资源类似建立WPF项目,使用4.5框架mainwindow.xml文件如下<Window x:Class="TaskSchedulerDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/prese原创 2016-02-25 23:11:14 · 1835 阅读 · 0 评论 -
C# 中线程资源访问互斥锁
一个加减数值的例子说明问题using System;using System.Threading;namespace ThreadLockingDemo{ class Program { static void Main(string[] args) { Console.WriteLine("incorrect c原创 2016-02-28 22:02:10 · 1022 阅读 · 0 评论 -
C# 中线程资源访问互斥量
使用mutex,进行互斥访问示例中运行第一个窗口显示running此时运行第二个窗口显示 空白 处于等待。若在5秒内在第一个窗口中输入,将释放资源,此时第二个窗口将显示runningusing System;using System.Threading;namespace MutexDemo{ class Program { static voi原创 2016-02-29 20:44:03 · 1868 阅读 · 0 评论 -
C# 并发容器之ConcurrentDictionary与普通Dictionary带锁的性能对比
结果已经写在注释中static void Main(string[] args){ var concurrentDictionary = new ConcurrentDictionary(); var dictionary = new Dictionary(); var sw = new Stopwatch(); sw.Start(); for (原创 2016-03-06 21:29:41 · 18427 阅读 · 1 评论 -
c# 线程池RegisterWaitForSingleObject的一个Demo
static void Main(string[] args) { Console.WriteLine("first time 5s"); RunOperations(TimeSpan.FromSeconds(5)); Console.WriteLine("second time 7s");原创 2016-03-06 10:22:54 · 1580 阅读 · 0 评论 -
C# 调用委托线程BeginInvoke与EndInvoke
第一步,委托的申明private delegate string RunOnThreadPool(out int threadId);第二步,将被作为线程运行的函数private static string Test(out int threadId){ Console.WriteLine("starting..."); Console.WriteLine("is原创 2016-03-06 10:19:36 · 604 阅读 · 0 评论 -
C# 泛型之list<T>与ArrayList<object>比较
类型List中采用泛型T的方式加入内容而ArrayList中采用object的方式加入内容using System;using System.Collections.Generic;using System.Collections;using System.Diagnostics;namespace ListDemo{ class Program {原创 2016-03-01 20:23:12 · 1150 阅读 · 0 评论 -
C#线程间同步的几种实现方式
一、使用信号量using System;using System.Threading;namespace SemaphoreDemo{ class Program { static void Main(string[] args) { for(int i = 0; i <= 6; i++)原创 2016-03-01 20:30:47 · 1480 阅读 · 0 评论 -
C#在线程池中调用委托
在线程池中调用线程,同时启用超时等待。可应场景:发送信号,等待回复;收到回复->回复处理;未收到回复->超时处理using System;using System.Threading;namespace InvokingADelegate{ class Program { static void Main(string[] args)原创 2016-03-02 21:11:01 · 1404 阅读 · 0 评论 -
C# 泛型约束
主要约束类型参数可指定零个或一个主要约束不可指定的引用类型System.Object System.Array System.Delegate System.MulticastDelegate System.ValueType System.Enum System.Voidclass Sample where T: Stream{}有两个特殊的主要约束class原创 2016-03-15 21:30:24 · 886 阅读 · 0 评论 -
C# 开放类型与封闭类型
开放类型 具有泛型类型参数的类型封闭类型 为所有类型参数都传递了实际的数据类型using System;using System.Collections.Generic;namespace TypeObjectDemo{ internal sealed class DictionaryStringKey:Dictionary{ } class Prog原创 2016-03-03 21:15:35 · 3314 阅读 · 0 评论 -
C# 引用类型、值类型与拆箱、装箱
引用类型 任何可被称为‘类’的类型 如:System.Exception, System.IO.FileStream,System.String值类型 被称为结构或枚举的类型 如:System.Int32, System.Boolean,System.Decimal, System.TimeSpan, System.DayOfWeek, System.IO.FileAt原创 2016-03-04 20:59:31 · 662 阅读 · 0 评论 -
C# 线程池中取消线程的三种方式
三种方式都使用CancellationToken,只是使用方式不同,有类似于采用全局标志位的方式第一种 检测IsCancellationRequested方式 static void AsyncOperation1(CancellationToken token) { Console.WriteLine("starting the fi原创 2016-03-04 21:41:16 · 4667 阅读 · 0 评论 -
C# 手动调用线程与线程池方式调用的开销对比
UseThreads为手工线程UseThreadPool为线程池方式 static void Main(string[] args) { const int numberOfOperations = 500; var sw = new Stopwatch(); sw.Start();原创 2016-03-04 21:46:35 · 889 阅读 · 0 评论 -
C# BackgroundWorker的一个Demo
BackgroundWorker作用基本就能用名字来表达了具体工作内容函数 static void Worker_DoWork(object sender, DoWorkEventArgs e) { Console.WriteLine("doworker thread pool thread id: {0}", Thread.Curre原创 2016-03-05 21:23:16 · 583 阅读 · 0 评论 -
C#项目图文说明 不允许所请求的注册表访问权 异常的一种解决方式
解决思路提高程序运行权限操作右击项目>添加>新建项选择应用程序清单文件添加后会在项目中多出一个manifest文件进入编辑,如下重新运行程序,将需要重启VS参考【注册表访问】原创 2016-04-27 22:17:52 · 2983 阅读 · 0 评论