改頭換面

--重燃戰火

常用链接

统计

Favorite blogs

最新评论

我的评论


陋作,现丑了
PS:
博学博论   ==》 今天博学明日博论
高瞻高展   ==》今天我向高人(高明的企业)学习,明天我可以站在高处向别人展示
Hi,這是我在使用VML的一個設計思路,希望可以共同探討
http://ewf.pyzs.com.cn/EWF/FILES/Process.htm
報名 ^_^
面向对象编程三大支柱为: 继承 封装 多态
我认为 如果只具备封装就称为面向组件(类似VB6 下的COM组件)

re: .net的異步調用 HappyMan 2005-09-02 11:06  
多謝您的評論。
我知道可以用Thread來實現異步,還沒研究,接下來我會去做那部分的研究了。
只不過對這部分的問題沒有找到答案,我心有不甘!
難道大家都是在用Thread做異步?
請教回調阻塞异步操作的問題 HappyMan 2005-09-01 10:31  
您的異步教程給了我很多啟示,我按照您的提示並參考了MSDN的文章,
實作後,我有兩點疑惑,盼能替我解答!
問題一,請看如下代碼,它是執行異步回調阻塞操作的,但是我偵錯時發現:
正常執行時根本沒有進入到回調的函數,程式執行完Console.WriteLine("--The Main Method was ended at:"+System.DateTime.Now);後便直接退出來了。
但是如是在Console.WriteLine("--The Main Method was ended at:"+System.DateTime.Now);設置斷點,並在該位置停6秒,
則程式會進入該斷點。

請問這個情況正常嗎?原因是什麼呢?
問題二,我在MSDN的那份文件上看到這樣一句話:警告:始終在異步調用完成後調用EndInvoke().
我在實際測試時,發現我若不使用回調時,可以處理一種情況:當我對異步方法的結果沒有要求時。
即我啟動異步方法後就不再管它了。
請問這樣做是否可以?MSDN的那段警告的原因是什麼? 

using System;

namespace WindowsApplication1
{
 /// <summary>
 /// Async2 的摘要描述。
 /// C#中異步回調,調用方法後,由異步方法Handle通知主程序。
 ///
 /// </summary>
 public delegate void AsynCall(int iTime);
  public class Async2
 {
  public Async2()
  {
   //
   // TODO: 在此加入建構函式的程式碼
   //
  }

  public void MyMethod1(int iTime)
  {
   Console.WriteLine("--MyMethod Begin");
   System.Threading.Thread.Sleep(iTime);
   Console.WriteLine("Now is:"+System.DateTime.Now);
   Console.WriteLine("--MyMethod End");
  }

  public void MyAsync(int iTime)
  {
   Console.WriteLine("**MyAsync Begin");
   System.Threading.Thread.Sleep(iTime);
   Console.WriteLine("Now is:"+System.DateTime.Now);
   Console.WriteLine("**MyAsync End");
  }

  public void AsyncHandle(IAsyncResult iar)
  {
   //while(!iar.IsCompleted)
    //System.Threading.Thread.Sleep(10);
   if(iar.IsCompleted)
   {
    Console.WriteLine("Async Handle found the Async is end!");
    AsynCall ac=(AsynCall)iar.AsyncState;
    ac.EndInvoke(iar);
   }
  }
///*
  [STAThread]
  public static void Main()
  {
   Async2 x=new Async2();
   Console.WriteLine("Now is:"+System.DateTime.Now);
   AsynCall ac=new AsynCall(x.MyAsync);
   AsyncCallback acb=new AsyncCallback(x.AsyncHandle);//定義Handle
   IAsyncResult iar=ac.BeginInvoke( 6000,acb,ac);//開始執行異步,並轉交Handle.

   x.MyMethod1(2000);
 
   Console.WriteLine("--The Main Method was ended at:"+System.DateTime.Now);
  }
//*/
 }
}

LIon兄,
我使用的是繁體中文系統,請問如果我要把他繁體化,是否有什麽建議?
因爲我試著把所有的文件繁體化后,發現運行時無法正常顯示出界面。
另再提一下我的另一個思路,
就是把文件轉換成圖片後,再加入PDF會使事情變得很好辦,我個人覺得是可行的,而且網站上也有一兩個HTML2PIC的程式下載。隻是不知為什麼,我沒有找到C#或相關程式對此的任何評論或控件
如果各位有什麼高見,歡迎來此討論!
謝謝各位的回復!
查了一天的程序,真是越查越心涼!
因為Pdfizer使用了一個叫NTidy的項目,也是開源的,但是是用C++編寫的,我不懂C++,但也試圖去跟蹤程式,結果進入到如下一段代碼後,發現中文被轉換成了亂碼:
m_ptr = System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( s )
如下是在MS上找到的該方法的說明:
提供了一个方法集,这些方法用于分配非托管内存、复制非托管内存块、将托管类型转换为非托管类型,此外还提供了在与非托管代码交互时使用的其他杂项方法。
該方法會把字串轉成ANSI,我試圖找MS提供的另外幾個類似的方法:StringToCoTaskMemAnsi、StringToCoTaskMemAuto、StringToCoTaskMemUni、StringToHGlobalAnsi、StringToHGlobalAuto、StringToHGlobalUni、StructureToPtr均無成效,去掉則不成
而後我再先繞過該段處理,在寫入PDF前手動加入中英文,結果是,英文能正常顯示,而中文則根本不顯示,亂碼都沒一個。
原本我還奢望想法處理掉前面一個問題,可後來一個問題,我就。。。

另,to Brake,我試了你提到的那個軟件,確實不錯,但我發現它不能處理HTML的<table>,但奇怪的是如果一個靜態頁面包含Table,它卻能處理,我懷疑它是使用截圖得到的,因為我在它的Help裡也沒有找到它對Table的支持或說明。如果你有成功能測試通過,請把你的方法Share我看一下,好嗎?
先生的做法是值得提倡和善用的
在我們的Team裡工作的安排便是這麼透明的,所有人的工作都做在一個系統裡(最初是都做在一份Excel裡),每個開發人員根據項目經理分配給自已的任務做詳細的進度安排,再每周或每天更新自已的工作進度。
不過我們不是軟件公司,對於軟件的開發速度要求不是很高,所以通常都會把時間支配得比較輕鬆。
但這樣對於項目經理來說,卻是能很容易地做到控制整個專案的開發進度及掌握每個人的開發能力。
re: Java與模式學習筆記1 HappyMan 2005-05-25 08:26  
有這樣博客的嗎?
給大伙講講你對每種模式的理解和心得吧,
搞不好你理解錯了,大伙可以幫你找找丫 ^_^