не удается преобразовать из "void" в "System.Threading.TimerCallback"
Здраствуйте, в чём суть, мне надо чтобы метод сам себя вызывал каждую секунду с нужными параметрами. Перепробовал кучу способов, но вылезают одни и те же ошибки, то в лямде нельзя использовать ref
, то (не удается преобразовать из "void" в "System.Threading.TimerCallback") и т.д. Был бы рад, если вы мне помогли.
Сам метод:
private void F(ref int Progress, Label Info_progress)
{
System.Threading.Timer timer = new System.Threading.Timer(F(ref Progress, Info_progress), null, 1010, 1000);
Info_progress.Text = $"{Progress}%";
}
Весь код, если нужно:
namespace _5;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Play_(object a, EventArgs e, Label Title, Button B_Play)
{
Title.Dispose();
B_Play.Dispose();
Label Info = new();
Info.Location = new Point(1,1);
Info.AutoSize = true;
Info.Font = new Font("Airal", 15);
Info.Text = "Не позволяй чайнику остыть!";
Controls.Add(Info);
int Progress = 25;
Label Info_progress = new();
Info_progress.Location = new Point(140,150);
Info_progress.AutoSize = true;
Info_progress.Font = new Font("Airal", 14);
Info_progress.Text = $"{Progress}%";
Controls.Add(Info_progress);
Button Clicker_Warm = new();
Clicker_Warm.Location = new Point(55, 350);
Clicker_Warm.AutoSize = true;
Clicker_Warm.Font = new Font("Arial", 16);
Clicker_Warm.Text = "Подогреть";
Clicker_Warm.BackColor = Color.Orange;
Clicker_Warm.Click += (a,e) =>
{
if (Progress != 100)
{
Logic_class.Logic_(ref Progress);
Info_progress.Text = $"{Progress}%";
}
};
Controls.Add(Clicker_Warm);
F(ref Progress, Info_progress);
}
private void F(ref int Progress, Label Info_progress)
{
System.Threading.Timer timer = new System.Threading.Timer(F(ref Progress, Info_progress), null, 1010, 1000);
Info_progress.Text = $"{Progress}%";
}
}
Источник: Stack Overflow на русском