none
請問一個報表匯出轉檔時發生的錯誤訊息... RRS feed

  • 問題

  • 請問一下:

       我在WinForm裡寫了一個程式要將報表匯出成PDF檔,而報表資料來源是以填入DataSet的方式達成,必須要連續轉一千多筆,可是常常轉不到一千個就會出現"偵測到CallbackOnCollectedDelegate"這個錯誤訊息,然後我按了繼續之後,就會在myReportDoc.SetDataSource(DS)這一行指令上又出現"無法將該報表檔在背景執行"的錯誤,可是我並沒有將程式用background來寫啊,不知道是什麼樣的原因才會造成這個錯誤的呢?

    謝謝

    2006年5月24日 上午 05:53

解答

  • 我問觸發時機的問題其實只是想知道它是在甚麼樣的情況下去作業的!我可以想了解一下你的一筆資料量是多大?會不會是抓取資料庫時產生的錯誤!!我曾經接過一個Case是在做一種圓徑剖面的平均值標準差運算,而運算一支直棒大約都包含的2~300筆的圓徑剖面資料!它的一筆資料量高達7~8kb,有時候一次查詢就是幾千筆資料,如果用一般的抓取方式根本沒辦法抓的下來,所以我將抓取資料與運算分批作業,運用的也是多執行緒作業,所以我才會問你的觸發時機!

    至於你的問題我可能要看看Code才能了解

    2006年5月26日 下午 04:48

所有回覆

  • 請問你觸發匯出的時機是甚麼時候,還有你有使用多執行緒在作業嗎?這個錯誤好像是在描述你有一個執行緒是沒有主人的,而這隻執行緒企圖去更改你的Control成員!這樣的問題大多是出在多執行緒上面,你在轉報表的時候是利用多執行緒的方式去作業的嗎?

    可能在你主程式在執行的時候你宣告了另外一條執行緒去執行某樣東西,而在執行的過程中他又在開啟另外的執行緒去執行另外一樣程式!當第三隻執行緒未結束之前第二隻執行緒已經結束,這時候第三隻執行緒就會變成沒有主人的執行緒,它如果去更變到你的Control成員時,就很容易出現類似這樣的執行緒安全的問題

    2006年5月25日 下午 01:51
  • 謝謝您的回答:

    我原本是用多執行緒的方式執行,可是後來發生這個問題之後我就改成單一執行的方式,可是它還是會出現這樣的錯..所以我也不知道是怎麼了

    那麼請問您所問的觸發時機這會有什麼影響嗎?

    謝謝

    2006年5月26日 上午 01:03
  • 我問觸發時機的問題其實只是想知道它是在甚麼樣的情況下去作業的!我可以想了解一下你的一筆資料量是多大?會不會是抓取資料庫時產生的錯誤!!我曾經接過一個Case是在做一種圓徑剖面的平均值標準差運算,而運算一支直棒大約都包含的2~300筆的圓徑剖面資料!它的一筆資料量高達7~8kb,有時候一次查詢就是幾千筆資料,如果用一般的抓取方式根本沒辦法抓的下來,所以我將抓取資料與運算分批作業,運用的也是多執行緒作業,所以我才會問你的觸發時機!

    至於你的問題我可能要看看Code才能了解

    2006年5月26日 下午 04:48