流星,霎那划过天际

导航

告别日记

  一直以来在只写日记,因为总认为自己写的那些东西不够资格发表出来,毕竟大多数只是在摘录学习。

  还有半小时0点,听着任贤齐的飞鸟,想起刚听这曲子时我还在念高中,想起刚分别一年多我忘了大学兄弟的生日,工作流 Wcf 今天过得还真累。

  难怪那么多书会教人怎么释放压力。 现在才发现我的野心与我的能力间的巨大落差。无法想象facebook的第一版如何能在一周内由3个人写出。

  想起前天看到浙大的一个讲师跳楼自杀。清华的双学士,美国西北大学的博士后。只能在中国住着57平的房子,用最普通的家什,就这样还被校方认为是对其的恩典。而山西的黑金老板们呢。我不想做愤青,只是搞不懂小时候老师让我们好好读书究竟是教导还是误导。就此打住。

  记录下今天的所得。

   1。 工作流的内核是有用到IOCP 完成端口的,我是觉得没必要深究,但有一点得注意,既然是IOCP就必然是多线程。我们调一个WorkflowInstance的Start方法实际上该Instance中工作流Activity的实现过程就在另一个线程了。详情可以参考老徐的博客。地址没贴,逛他的博客会受益良多的。

   2.状态机工作流,可以以事件作为触发条件,并且可以把杂七杂八的东西都放在事件的实例e中丢到状态机工作流中。状态机工作流可以启顺序工作流,并且将e中的杂七杂八的属性绑定到顺序工作流中,这样以一个e就能将复杂的结构体进行传递了。有点像SocketASyncEventArgs中的UserToken属性似的。都是可以传结构体的。对工作流配置属性可以用wdp如果有装resharper的话会有模板,很快捷,而且不容易出错。 1 

 2  public static DependencyProperty NewFunctionDownEventArgsProperty =
 3             DependencyProperty.Register(
 4                 "NewFunctionDownEventArgs"typeof(NewFunctionDownEventArgs), typeof(BusinessWorkflow));
 5 
 6  [Description("NewFunctionDownEventArgs")]
 7         [Category("NewFunctionDownEventArgs Category")]
 8         [Browsable(true)]
 9         [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
10         public NewFunctionDownEventArgs NewFunctionDownEventArgs
11         {
12             get { return ((NewFunctionDownEventArgs)(GetValue(NewFunctionDownEventArgsProperty))); }
13             set { SetValue(NewFunctionDownEventArgsProperty, value); }
14         }

 

   3.关于外部方法的调用,需要制定接口,感觉和wcf似的,将接口引申为了契约。然后才能调用满足该接口的方法。

   1 

2 WorkflowRuntime = new WorkflowRuntime();
3 
4             ExternalDataExchangeService dataService=new ExternalDataExchangeService();
5             WorkflowRuntime.AddService(dataService);
6             dataService.AddService(this);
7 
8             WorkflowRuntime.StartRuntime();

  

  dataService的AddService的传入参数是实现该接口的类的实例对象。

 4.TM过0点了,还有大堆的事,我做事真够慢的。

 

 

posted on 2009-10-28 00:06  流星,霎那划过天际  阅读(196)  评论(0编辑  收藏  举报