.NET 4.x Передача в новый поток метода с параметрами из другого класса
Код:
namespace name
{
public partial class Class1 : Form
{
public Class1()
{
InitializeComponent();
}
Class2 cl2 = new Class2();
List<Class3> cl3;
Class4 cl4 = null;
public void Work(Class3 Clthree, Class4 Clfour)
{
.
.
.
Class2.Job(ref Clthree, Clfour.var1); // необходимо запустить этот метод в нескольких потоках
.
.
.
}
}
}
{
public partial class Class1 : Form
{
public Class1()
{
InitializeComponent();
}
Class2 cl2 = new Class2();
List<Class3> cl3;
Class4 cl4 = null;
public void Work(Class3 Clthree, Class4 Clfour)
{
.
.
.
Class2.Job(ref Clthree, Clfour.var1); // необходимо запустить этот метод в нескольких потоках
.
.
.
}
}
}
Код:
[code=csharp]
namespace name
{
public class Class3
{
.
.
.
}
public class Class4
{
.
.
.
public double var1;
.
.
.
}
}
namespace name
{
public class Class3
{
.
.
.
}
public class Class4
{
.
.
.
public double var1;
.
.
.
}
}
Код:
namespace name
{
public class Class2
{
.
.
.
public void Job(ref Class3 DoTheJob, double Amount)
{
.
.
.
}
}
}
{
public class Class2
{
.
.
.
public void Job(ref Class3 DoTheJob, double Amount)
{
.
.
.
}
}
}
http://msdn.microsoft.com/ru-ru/library/6kac2kdh.aspx
Или простейшим new Thread(() =>Class2.Job(ref Clthree, Clfour.var1)).Start();
Только ref там явно лишний. Классы и так передаются по ссылке, а не по значению. А если ты будешь где-то в потрохах менять ссылку, то на уже переданных в другие потоки экземплярах это никак не скажется. Нужно заводить событие, которое будет информировать другие Job'ы о том, что ссылка изменилась и нужно заново взять данные.
P.S. Clfour.var1 => clfour.Var1 - имена локальные переменных с маленькой буквы, а публичных полей и свойств - с большой, а то у тебя не поймёшь - где имя класса, а где переменная. Создаётся ощущение, что код вообще написан с ошибками, раз по ref пытаются передать тип.