Вы должны использовать Таймер отправки, как предложил @Aashish Thite.
Кроме того, вот ваша проблема: вы определяете
public static void ChannelAdvertise(object sender, IrcEventArgs e)
{
}
чтобы получить два аргумента, но вы пытаетесь вызвать его без аргументов:
static void advertiseTimer_Elapsed(object sender, ElapsedEventArgs e)
{
ChannelAdvertise();
}
это то, что ваше сообщение об ошибке "Нет перегрузки для метода" ChannelAdvertise "принимает 0 аргументов." говорит вам.
при этом у вас есть два варианта: вызвать его с необходимыми 2 аргументами (как вы его определили) или переопределить так, чтобы он не принимал никаких аргументов (как вы вызываете его из метода advertiseTimer_Elapsed
)
в основном вам нужно передать объект отправителя и аргумент IrcEventArgs.
Итак, вы могли бы назвать это так:
static void advertiseTimer_Elapsed(object sender, ElapsedEventArgs e)
{
// make a new one, or get it form some collection, or whatever
IrcEventArgs args = new IrcEventArgs( /* initialize the object */ );
ChannelAdvertise(this,args);
}
или вы можете переопределить это так:
// глядя на ваш код, вы используете только канал из IrcEventArgs.Data
объекта
public static void ChannelAdvertise( channelobject channel )
{
}