none
請問如何設定排程動作? RRS feed

解答

  • 文中不是有說:

    3.可以將要執行的程序以CallBack方式傳入執行個體中。

    第三個要求則是要在類別中先宣告一個委派,Public Delegate Sub SchCallBack(ByVal state As Object),這個委派再傳入建構函式後會被轉換為一個State Object當成是System.Threading.Timer建構函式的State Object;之所以不讓這個委派直接成為System.Threading.Timer的TimerCallBack參數,是因為當執行完呼叫這個類別 的委派程序後,類別本身還需要處理其它事情,在範例中就是呼叫TimeChaned方法。

    請先把MSDN文件庫中的[Visual Basic 中的委派] 研究一下, 基本上這就是把一個程序用委派的方式傳遞進去


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2011年9月4日 下午 04:06
    版主
  • (1) 老實講, 我不懂你的問題重點是什麼? 為什麼Threading Timer和 Forms Timer會扯在一起 ?

    (2) 你以下這個程式碼存在一個很大的問題, 你的Button Click 的 sender 和 e兩個參數, 和Timer1有什麼關係, 你怎會直接就傳過去了 ?

       Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Call MainForm.btnPayItem_Click(sender, e)
            Timer1.Stop()
        End Sub

    比較正確的方式應該是用 [Button.PerformClick 方法], 或是乾脆弄成一個分開的Method才對

    (3) 所以我建議你, 應該先把Visual Basic的程式設計概念搞懂再去理解那個排程器, 如果你急著要排程, 直接用Windows排程器比較快.

    [Visual Studio 2010 - Visual Basic ]


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Mr.Frankie 2011年9月14日 上午 03:09
    2011年9月11日 下午 03:14
    版主

所有回覆

  • 直接用 Windows 內建排程即可。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年9月4日 上午 04:35
  • 引用 : http://www.dotblogs.com.tw/billchung/archive/2009/05/13/8398.aspx

    這個排程工作時間到了...不能夠運行一串動作

    請問要如何修改?

    這個我常用, 從來沒遇到不能用過.

    先看這篇文章[張貼文章應注意事項及應提供資訊] 描述清楚你倒底想怎麼做 ?


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2011年9月4日 上午 04:46
    版主
  • 引用 : http://www.dotblogs.com.tw/billchung/archive/2009/05/13/8398.aspx

    這個排程工作時間到了...不能夠運行一串動作

    請問要如何修改?

    這個我常用, 從來沒遇到不能用過.

    先看這篇文章[張貼文章應注意事項及應提供資訊] 描述清楚你倒底想怎麼做 ?


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    不好意思...這麼晚才回覆你

    我用這個排程時間到了...是會顯示結束時間...

    那如果我要在結束時間的時候...自動連去(E.G:網頁某一個按鈕) 要怎麼達成?

    2011年9月4日 下午 04:03
  • 文中不是有說:

    3.可以將要執行的程序以CallBack方式傳入執行個體中。

    第三個要求則是要在類別中先宣告一個委派,Public Delegate Sub SchCallBack(ByVal state As Object),這個委派再傳入建構函式後會被轉換為一個State Object當成是System.Threading.Timer建構函式的State Object;之所以不讓這個委派直接成為System.Threading.Timer的TimerCallBack參數,是因為當執行完呼叫這個類別 的委派程序後,類別本身還需要處理其它事情,在範例中就是呼叫TimeChaned方法。

    請先把MSDN文件庫中的[Visual Basic 中的委派] 研究一下, 基本上這就是把一個程序用委派的方式傳遞進去


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2011年9月4日 下午 04:06
    版主
  • 文中不是有說:

    3.可以將要執行的程序以CallBack方式傳入執行個體中。

    第三個要求則是要在類別中先宣告一個委派,Public Delegate Sub SchCallBack(ByVal state As Object),這個委派再傳入建構函式後會被轉換為一個State Object當成是System.Threading.Timer建構函式的State Object;之所以不讓這個委派直接成為System.Threading.Timer的TimerCallBack參數,是因為當執行完呼叫這個類別 的委派程序後,類別本身還需要處理其它事情,在範例中就是呼叫TimeChaned方法。

    請先把MSDN文件庫中的[Visual Basic 中的委派] 研究一下, 基本上這就是把一個程序用委派的方式傳遞進去


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    老師您好...這個搞不好

     

        Delegate Sub SetMsg2Callback(ByVal InputString As String)
    
        Private Sub DisplayMsg2(ByVal strReceive As String)
            Try
                If Me.txtEndTime.InvokeRequired Then
                    Dim d As New SetMsg2Callback(AddressOf DisplayMsg2)
                    Me.Invoke(d, New Object() {strReceive})
                Else
                    Timer1.Enabled = True
    
                    Timer1.Start()
                    Me.txtEndTime.Text = strReceive
                End If
            Catch ex As ObjectDisposedException
                '停止的時候有可能會造成 ObjectDisposedException
                '請參閱 [Try Catch能幫你做什麼(4)?] http://www.dotblogs.com.tw/billchung/archive/2009/04/04/7851.aspx
            End Try
    
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Call MainForm.btnPayItem_Click(sender, e)
            Timer1.Stop()
        End Sub
    

    在結束的時候偶然能跑 Timer1 ....有辦法做到100%時間結束運行 Timer1?

     


    • 已編輯 Mr.Frankie 2011年9月11日 上午 03:37
    2011年9月11日 上午 03:36
  • (1) 老實講, 我不懂你的問題重點是什麼? 為什麼Threading Timer和 Forms Timer會扯在一起 ?

    (2) 你以下這個程式碼存在一個很大的問題, 你的Button Click 的 sender 和 e兩個參數, 和Timer1有什麼關係, 你怎會直接就傳過去了 ?

       Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Call MainForm.btnPayItem_Click(sender, e)
            Timer1.Stop()
        End Sub

    比較正確的方式應該是用 [Button.PerformClick 方法], 或是乾脆弄成一個分開的Method才對

    (3) 所以我建議你, 應該先把Visual Basic的程式設計概念搞懂再去理解那個排程器, 如果你急著要排程, 直接用Windows排程器比較快.

    [Visual Studio 2010 - Visual Basic ]


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Mr.Frankie 2011年9月14日 上午 03:09
    2011年9月11日 下午 03:14
    版主