【发布时间】:2011-08-09 06:25:27
【问题描述】:
我至少在这个问题上缩小了我的错误,但我现在只是卡住了。我在那个“它似乎应该工作”并且我只重新查找相同的帖子。所以。我正在使用一个抽象基类,我想用它来控制数据下载过程。在这个类中,我添加了一个我为 System.Threading.Timer 编写的包装器的实例。在我的计时器的构造函数中,我有两个参数,一个是尝试将抽象方法传递给回调对象,另一个是计时器的滴答事件的时间,基于具体/派生类中的实例变量不同的数据下载过程。
这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;
using HtmlAgilityPack;
using DataUtlitiesMain;
using TradeSystemObjects;
using System.Data.SqlClient;
namespace DataOperations
{
public abstract class DataRunManager
{
DataRunTimer dataRunTimer;
private abstract String HourForDataRunInMilitary; //Such as 16.0 for 4pm.
public DataRunManager()
{
SetDataRunTimer();
}
private void SetDataRunTimer()
{
dataRunTimer = new DataRunTimer(MainDataRunProcedure(),GetMillisecondsUntilDataRun());
}
protected abstract static void MainDataRunProcedure(object state);
//public abstract TimerCallback SetDataRunMainDelegate();
private Int32 GetMillisecondsUntilDataRun()
{
DateTime now = DateTime.Now;
DateTime targetTime = DateTime.Today.AddHours(Convert.ToDouble(HourForDataRunInMilitary));
return (int)((targetTime - now).TotalMilliseconds);
}
}
public class DataRunTimer
{
Timer timer;
public DataRunTimer(TimerCallback TimerProc, Int32 MillisecondsUntilDataRun)
{
Timer timer = new Timer(TimerProc, null, MillisecondsUntilDataRun, 1000);
}
}
还有我的错误:
参数 1:无法从 'void' 转换为 'System.Threading.TimerCallback' DataOperations
方法“MainDataRunProcedure”的重载采用 0 个参数
'DataOperations.DataRunTimer.DataRunTimer(System.Threading.TimerCallback, int)' 的最佳重载方法匹配有一些无效参数
期待任何建议。谢谢...
【问题讨论】: