Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

msystem


Ведущий Диалог

Зарегистрирован:
09 June 2006
Сообщения: 144
Примеры кода: 0
 

Как создать форму из другого потока(не GUI)? BeginInvoke не помогает.

02 May 2008 20:57  


Ты просмотрел один момент - а конкретно что вызывал Visible в другом потокеУлыбка. Вот тебе работающий код, который поможет разобраться - консольная прога.

using System;
using System.Threading;
using System.Windows.Forms;
using Timer=System.Threading.Timer;

namespace GuiThread
{
class Program
{
static void Main(string[] args)
{
Form1 form1 = new Form1();
form1.Show();

Application.Run();
Console.ReadLine();
}
}

public class Form1 : Form
{
public Form1()
{
Button button = new Button();
button.Click += button1_Click;
button.Text = "Create form";

Controls.Add(button);

Text = "Thread id : " + Thread.CurrentThread.ManagedThreadId;
}
private void button1_Click(object sender, EventArgs e)
{
//Form1 form = new Form1();
//form.Show();
Worker w = new Worker(this);
}
}

public class Worker
{
Timer t;
Form mainform;

public Worker(Form f)
{
t = new Timer(work, null, 0, 10000);
mainform = f;
}

delegate Form1 callCreate();

void work(object state)
{
Console.WriteLine("Call work() in thread:" + Thread.CurrentThread.ManagedThreadId);
Form1 f = mainform.Invoke(new callCreate(createForm)) as Form1;
mainform.Invoke(new ThreadStart(f.Show));
//f.Visible = true;

//Application.DoEvents();
}

Form1 createForm()
{
Console.WriteLine("Call constructor() in thread:" + Thread.CurrentThread.ManagedThreadId);
Form1 newform = new Form1();
return newform;
}
}
}



Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 02 May 2008 20:57
Наверх
  



Общие вопросы программирования на ASP.NET

 Как создать форму из другого потока(не GUI)?  BeginInvoke не помогает.vb95  02 May 2008 17:38
 Как создать форму из другого потока(не GUI)?  BeginInvoke не помогает.msystem  02 May 2008 18:45
 Как создать форму из другого потока(не GUI)?  BeginInvoke не помогает.vb95  02 May 2008 20:03
 Как создать форму из другого потока(не GUI)?  BeginInvoke не помогает.vb95  02 May 2008 20:05
 Как создать форму из другого потока(не GUI)?  BeginInvoke не помогает.msystem  02 May 2008 20:57
 Как создать форму из другого потока(не GUI)?  BeginInvoke не помогает.vb95  03 May 2008 11:47
 Как создать форму из другого потока(не GUI)?  BeginInvoke не помогает.Димон  04 May 2008 11:21
 Как создать форму из другого потока(не GUI)?  BeginInvoke не помогает.msystem  03 May 2008 00:21
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта