c#
文章平均质量分 87
White_Hacker
这个作者很懒,什么都没留下…
展开
-
C# SSIS包开发中遇到的无法找到Microsoft.SqlServer.DTSRuntimeWrap.dll问题
最近一直在搞SQLSERVER SSIS 2008包提取和解析方面的工作,在从Sqlserver下载IS包功能开发中,发现了一个问题:无法找到Microsoft.SqlServer.DTSRuntimeWrap.dll或者他的依赖项。捣鼓了一阵子后,发现是需要安装SQLSERVER CLIENTSDK的,就是SQLSERVER 2008安装过程中选中安装【客户端SDK】。不过即使安装...原创 2020-02-06 09:18:23 · 861 阅读 · 0 评论 -
【C#】48. Task WhenAll、WhenAny 创建任务的任务
Task中有几个非常方便的并行运行任务的方式,比如WhenAll(当所有Task都运行完毕RanToCompletion)、WhenAny(只要有一个Task运行完毕)等等。本篇就来介绍一下WhenAll和WhenAny。static int TaskMethod(string name, int seconds){Console.WriteLine("Task {0} 运行在线程 {1}原创 2016-12-12 11:08:33 · 11800 阅读 · 0 评论 -
【C#】47. Task 的异常处理
就像在讨论线程的时候我们说过,要在线程调用的函数里面做try catch处理,如果在其他线程中使用try catch是无法正常捕获异常。Task也一样,基本原理就是一个线程没办法捕获另一个线程的异常。static int TaskMethod(string name, int seconds){Console.WriteLine("Task {0} 运行在线程 {1} 上。是否是线程池线程原创 2016-12-12 10:34:49 · 9379 阅读 · 0 评论 -
【C#】46. 使用CancellationTokenSource 取消 Task
本篇的内容也很重要,因为涉及到了日常经常会碰到的取消任务操作。从我个人了解到的情况,基本上大家都采用CancellationTokenSource方法来取消任务,因此这里就举几个简单的例子。例子依然是来自于《C#多线程编程实战》。private static int TaskMethod(string name, int seconds, CancellationToken token)原创 2016-12-12 10:03:52 · 18886 阅读 · 0 评论 -
【C#】45. Task ContinueWith 后续操作
本章内容其实挺重要的,但是现在我工作中还没怎么遇到,应该是我还没想到的关系吧~ContinueWith是Task根据其自身状况,决定后续应该作何操作。也就是说,在运行完task后,会执行task.continuewith(XX)中的XX语句,但是是否执行、如何执行等需要看task的运行情况。static int TaskMethod(string name, int seconds)原创 2016-12-11 22:23:08 · 23452 阅读 · 3 评论 -
【C#】44. Task<T> 根据带返回值的函数构造Task
上篇中,我们看了不带参数值和返回值的函数(Action)构造Task的方法,本篇中我们想Thread一样,看看如何给Task传参和返回值。首先定义int TaskMethod(String)函数,该函数以String作为参数,返回Int类型结果:static int TaskMethod(string name){Console.WriteLine("Task {0} 运行在线程id为原创 2016-12-11 21:23:12 · 37987 阅读 · 1 评论 -
【C#】43. TPL基础——Task初步
从这篇文章开始,我想直接进入关于Task的一些内容,有时间再回顾Threadpool的相关内容。我一开始接触Task就觉得他和Thread很像,都是开新的线程。但是两者有很多区别,其中比较明显的是:Task创建的是线程池任务,而Thread默认创建的是前台任务。 同Thread一样,Task可以使用lambda表达式来构造action,作为Task的构造函数参数。如下:1原创 2016-12-11 20:56:10 · 2758 阅读 · 3 评论 -
【C#.37】多线程中的Sleep以及子线程优先级
继续上篇,其实在写文章的过程中真的实践了不少,而且发现和自己原来认为的有挺多不同的。因此有错误的话请多指正。以下的内容都是经过试验得出的:using System;using System.Threading;namespace Chapter1.Recipe2{class Program{static void Main(string[] args){Thread原创 2016-12-11 14:00:17 · 12757 阅读 · 0 评论 -
【C#】36. 多线程基础(1) Thread Start、Sleep
C#多线程基础原创 2016-12-11 13:09:47 · 2662 阅读 · 0 评论 -
【C#】33. 使用XAPI进行程序化交易
最近一直在研究CTP和XAPI接口的东西,一方面是工作需要,一方面是自己兴趣所在。在网上也找了很多资料,但说实话确实没有很详实的材料。在自己的不断试错中,逐渐摸索到了一点规律。在此基础上,我写了一个很简单的winform程序,主要用来下单,同时又配合simnow快期软件来进行监控,最终效果如下:初步设计能够通过市价下单,并且查询到下单回报,同时还可以查询到持仓。但是XAPI在实原创 2016-07-23 10:03:42 · 2480 阅读 · 1 评论 -
【C#】32. 使用EF(EntityFramework)连接Mysql,MVC开发
写这篇文章的目的是为了提醒自己:VS2010是我用的最久的,也是最稳定的,而且好用,快速!另外也是想让与我有同样问题的小伙伴少走弯路~原创 2016-06-28 20:33:27 · 4052 阅读 · 0 评论 -
【C#】31. LINQ 与 SQL 的抗争! 小议 NTILE() 和 自写的拓展函数
最近在准备期货考试和计算机数据库三级,应该说是两门我一定要拿下的考试。昨天正好看到介绍SQL中关于OVER和Partition by 以及 NTILE 等的语法,用SQL着实非常方便。但是作为一名对 C# 有感情的人,我决定用Linq实现一把。其实也就两个例题,原始数据表是 MyOrderDetail:【例22】 将该表数据按订购数量降序排列,并将该表数据划分到4个组中。S原创 2016-01-31 23:02:04 · 1129 阅读 · 0 评论 -
【C#】30. VS 2015 的 C# 交互窗口(interactive window)
前两天刚刚下载了VS2015,发现里面的 C# 交互窗口还挺好用的。平时做金融数据的应用都用的是C#,这里是一个很简单的读取文件,把文件中的某个字符串替换为新的指定的字符串。以下便是交互窗口的界面:由于我把函数都写在 库MyLibrary中,所以要使用 #r命令!同样,还要using一下:接下来就可以使用函数啦!还可以把命令写入文本文原创 2016-01-24 20:18:54 · 5169 阅读 · 0 评论 -
【C#】29. VIX指数的实现(使用上证50ETF为原始数据)
这是到现在为止,第一个用C#完整做出来的金融应用,虽然还有许多需要完善的地方,但是框架已经搭建好了。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Data;namespace VIX{ pub原创 2015-10-31 08:21:19 · 3065 阅读 · 0 评论 -
【C#】50.使用await操作连续的异步任务
本篇主要说明一下使用await处理连续异步任务后,程序的条理会变得较为清晰。async static Task GetInfoAsync(string name){Console.WriteLine("Task {0} started!", name);await Task.Delay(2000);if(name == "Async 2")throw new Exceptio原创 2016-12-12 21:13:55 · 3610 阅读 · 0 评论 -
【C#】49. async, await 基础
这篇文章主要介绍一下C# 5.0语法中的新组合:async 和 await。我这里主要会写一些基本的注意要点,但是不会过于仔细。首先,必须要说明的是async和await是一对,要使用await关键字,那么函数前必须要有async前缀;这对语法糖不能使用在catch、finally、lock、unsafe代码中;且函数参数不能有out或者ref修饰;异步函数必须返回Task或者Task类型。原创 2016-12-12 15:16:23 · 1983 阅读 · 0 评论 -
【C#】51. Await 处理并行任务(WhenAll)以及Task.Delay()
这篇文章主要说明两个问题:1、await如何替代ContinueWith来处理WhenAll之类的并行多任务;2、Task.Delay()的原理。async static Task GetInfoAsync(string name, int seconds){await Task.Delay(TimeSpan.FromSeconds(seconds));//await Task.Run(翻译 2016-12-12 21:54:14 · 8532 阅读 · 1 评论 -
C# UI与后台线程死锁问题
在项目开发中,往往会遇到线程死锁问题。前几天,我也遇到了一个类似的问题,在这里与大家分享。一、功能描述 原本程序只能自动刷新(其实就是每隔十秒钟查询访问数据库,得到数据),现在希望增加手动刷新共功能,保证用户使用的方便性和实时性。界面如下:二、设计思路 为了保证自动刷新的时候不会被手动刷新所干扰,我在程序中加了锁。功能函数如下:自动刷...原创 2019-04-05 09:20:18 · 1416 阅读 · 0 评论 -
【C#】62. 异步读写文件的几种方法: Task.Factory.FromAsync,WriteAsync
一、这里主要说明2种异步写入文件的方法:1)异步编程模型API转为Task——使用Task.Factory.FromAsync方法2)对于StreamWriter使用WriteAsync方法请记得对stream对象使用FileOptions.Asynchronous选项!首先来看一下准备函数:CreateFileContent是用来随机生成要写入的内容(字符串形式);转载 2016-12-13 14:38:23 · 10268 阅读 · 1 评论 -
【C#】63. 异步操作数据库 localDB
这篇不难,都是些基础性的异步操作,所以直接上代码。可以参考里面的语法包括:1)找到当前的bin文件夹:string outputFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);2)调用数据库的自带procedure(这里是detach)并且传参:Console.WriteLin转载 2016-12-13 15:27:21 · 3804 阅读 · 0 评论 -
【C#】61. 并行查询的异常处理 PLINQ Exception
本文主要是要说明PLINQ中如果发生了异常(除取消任务以外的异常),那么将会返回一个aggregateexception(因为所有并行查询中发生的异常都会被抛出),需要对其中的innerexception进行进一步处理。首先来看普通Linq查询中发生的异常:由于是顺序执行查询,因此当碰到了对应的第一个异常时便自动捕获,也无须考虑线程的问题,因为是在同一个线程中。IEnumerabl转载 2016-12-13 14:06:58 · 1145 阅读 · 0 评论 -
【C#】59. AsParallel() 与 ForAll
平时经常会用到LINQ,这里介绍的方法可以有效地使用并行查询来加快查询速度(AsParallel),同时通过使用ForAll来对结果进行并行处理。GetTpyes:通过反射,从当前Assembllies中的所有组件中找出名称以“Web”开头的类型名称。static IEnumerable GetTypes(){return from assembly in AppDomain.转载 2016-12-13 13:27:36 · 10120 阅读 · 0 评论 -
【C#】58. .Net中的并发集合——BlockingCollection
这篇是并发集合中的最后一篇,介绍一下BlockingCollection。在工作中我还没有使用过,但是看上去应该是为了便捷使用并发集合而创建的类型。默认情况下,BlockingCollection使用的是ConcurrentQueue容器,当然我们也可以使用其他实现了IProducerConsumerCollection的类型来操作。static Task GetRandomDelay(){转载 2016-12-13 12:31:26 · 5257 阅读 · 0 评论 -
【C#】57. .Net中的并发集合——ConcurrentBag
这个是一个直接的爬虫可伸缩应用,虽然大致看明白了,但是真的用到实际中,如何处理超时和网络连接失败呢?Crawling类型:用于标示需要爬取的网页的URL,以及是由哪个爬虫找到的。class Crawling{public string UrlToCrawl { get; set; }public string ProducerName { get; set; }}翻译 2016-12-13 11:15:44 · 7266 阅读 · 0 评论 -
【C#】56. .Net中的并发集合——ConcurrentStack
这篇其实和上一篇几乎一样,只是把ConcurrentQueue改为了ConcurrentStack,使用了Push(入)和TryPop(出)两个操作替代了Enqueue和TryDequeue。static void Main(string[] args){Task t = RunProgram();t.Wait();Console.Read();}static async Tas翻译 2016-12-13 10:26:02 · 3815 阅读 · 0 评论 -
【C#】55. .Net中的并发集合——ConcurrentQueue
这部分内容我觉得可以用在网络爬虫之类的任务上,应该是很有启发的。客户类型:class Custom{public int Id { get; set; }}“随机等待时间”任务:static Task GetRandomDelay(){int delay = new Random(DateTime.Now.Millisecond).Next(1, 500);return T翻译 2016-12-13 10:17:16 · 8590 阅读 · 0 评论 -
【C#】54. .Net中的并发集合——ConcurrentDictionary
转载自《C#多线程编程实例》对于并行计算,我们需要使用适当的数据结构。这些结构具备可伸缩性,尽可能地避免锁,并且还能提供线程安全的访问。.Net Framework 引入了System.Collections.Concurrent 命名空间,包含了一些数据结构。const string Item = "Dictionary item";public static string Curre转载 2016-12-13 09:45:41 · 6542 阅读 · 0 评论 -
【C#】53. Async void VS Task
本文主要说明与Task或者Task相比,Async void为什么应该避免。async static Task GetInfoAsync(string name, int seconds){await Task.Delay(TimeSpan.FromSeconds(seconds));if(name.Contains("Exception")) throw new Exceptio转载 2016-12-12 22:57:57 · 6450 阅读 · 0 评论 -
【C#】52. 使用Flatten方法处理并行任务抛出的异常
本篇主要讨论一下InnerException的处理方法flatten。async static Task GetInfoAsync(string name, int seconds){await Task.Delay(TimeSpan.FromSeconds(seconds));throw new Exception(string.Format("Boom from {0}!", nam翻译 2016-12-12 22:20:23 · 1109 阅读 · 0 评论 -
【C#】28. 操作Wind Reference Data
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.IO;using System.Diagnostics;namespace TestWindRefe原创 2015-08-22 19:28:50 · 509 阅读 · 0 评论 -
【C#】27. 比较工具EXCEL Addin
using Microsoft.Office.Tools.Ribbon;using Microsoft.Office.Interop.Excel;using System.Diagnostics;namespace MyTools{ public partial class MainRibbon { //定义成员 private Works原创 2015-08-22 09:10:15 · 1001 阅读 · 0 评论 -
【C#】Binomial model option定价
本来想先写点理论的,但是这个其实本质涉及到B-Smodel。我觉得,二叉树depth取到无穷大,就是B-Smodel。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace UserDefinedDataEXP{ pub转载 2015-03-08 06:53:08 · 1330 阅读 · 0 评论 -
【C#】12. Schedule (包括fromDates,toDates,payDates)
Bond schedule!原创 2015-03-06 07:12:50 · 731 阅读 · 0 评论 -
【C#】11. AssocMatrix【改】
昨天重新写了AssocMatrix,主要是用了elementat这个函数,避免foreach的次序待定问题。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace UserDefinedDataEXP{ public class AssocMatr原创 2015-03-04 00:59:30 · 443 阅读 · 0 评论 -
【C#】10. Excel输出矩阵数据
终于到Excel这里了,保存个记录,睡觉~原创 2015-03-02 08:09:25 · 1185 阅读 · 0 评论 -
【C#】 6.Set<T>数据类型
集合概念原创 2015-02-28 23:12:40 · 1019 阅读 · 0 评论 -
【C#】 8. Date类型
自定义日期类型,标准化格式,工作日原创 2015-03-01 19:58:27 · 2177 阅读 · 0 评论 -
【C#】7. Bond类型(付息日定价)
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace UserDefinedDataEXP{ public class InterestRateCalculator { //Member variables pri转载 2015-03-01 05:56:59 · 1100 阅读 · 0 评论 -
【C#】9. DateSchedule (bond或swap时间表)
下篇写怎么写到excel里面去!原创 2015-03-02 01:04:08 · 698 阅读 · 0 评论 -
【C#】18.使用Interest Rate SWAP生成interest rate curve
很激动!!!虽然还有很多地方要完善,但是框架基本对了!不容易啊。。。原创 2015-03-13 21:37:14 · 1397 阅读 · 0 评论