我已經把代碼放在石英從 http://fssnip.net/ecQuartz.Net F#代碼運行腳本,但不是主要
成F#源文件中VS 2013年,但我把最後一行中的函數:
let start():unit=
scheduler.ScheduleJob(job, trigger) |> ignore
當從腳本或主方法調用start()時,它工作正常。
然而,當我改變
type Job() =
interface IJob with
member x.Execute(context: IJobExecutionContext) =
Console.WriteLine(DateTime.Now)
到
// omit the(), so that Job is an interface
type Job =
interface IJob with
member x.Execute(context: IJobExecutionContext) =
Console.WriteLine(DateTime.Now)
調用start()仍然有效(即時間被印刷每秒),並且調用start()從一個主方法不再作品。 我期望調用start()將不再起作用,不管它是從腳本還是源文件中調用。
如果有人能解釋爲什麼從腳本文件調用start()仍然有效,我將不勝感激。
盛
我在腳本和主函數中添加了typeof .GetConstructors()。在腳本中,typeof 返回[| Void .ctor()|]。在main中,它返回[||]。 –
shing
2014-08-30 08:57:43
以某種方式靜默失敗,作業在不同的處理線程上實例化,但會記錄錯誤。沒有啓用錯誤級別的日誌記錄通常會導致類似這樣的問題。我甚至看到人們在構造函數中做DB查詢可能會失敗...... – 2014-08-30 14:30:05