Я хотя бы сузил свои ошибки в этом вопросе, но сейчас я просто застрял.Я нахожусь в том, что "это только кажется, что это должно работать", и я перефразирую только те же самые сообщения.Так.Я работаю с абстрактным базовым классом, который я хочу использовать для управления процессами загрузки данных.К этому классу я добавил экземпляр оболочки, которую написал для System.Threading.Timer.В конструкторе для моего таймера у меня есть два параметра: один - попытка передать абстрактный метод объекту Callback, другой - время для тикового события таймера, основанное на переменной экземпляра в конкретных / производных классах дляразличные процессы загрузки данных.
Вот мой код:
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)' имеет недопустимые аргументы
Будем рады любым предложениям.Спасибо ...