Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2012, 16:24   #1
Artprog
 
Регистрация: 09.01.2012
Сообщений: 5
По умолчанию C# потоки + формы

Добрый день.

Несколько дней не могу решить проблему:
Имеется форма. В ней по нажатию кнопки создается отдельный поток, совершающий вычисления.

Код:
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Thread newThread = new Thread(new ThreadStart(myClass.thFunc));
            newThread.Start();

        }
    }
Вот этот метод находящийся в другом классе:
Код:
    class myClass
    {
        public static void thFunc()
        {
            //вычисления
            TableForm TF = new TableForm();
            TF.Show();
            TF.writeTable();
            TF.Update();
        }
    }
ВО ВРЕМЯ вычисления данные должны выводиться в таблицу ДРУГОЙ ФОРМЫ
Код:
    public partial class TableForm : Form
    {
        public TableForm()
        {
            InitializeComponent();
        }

        public void writeTable()
        {
            for (int i = 0; i < 10;i++ )
            {
                dataGridView1.Rows.Add();
                dataGridView1.Rows[i].Cells[0].Value = i;
                dataGridView1.Update();
                Thread.Sleep(1000);
            } 
        }
    }
Этот код набросал - чтоб показать приблизительную струтуру программы.
Проблема в том, что форма с таблицей создана во втором потоке и пользователь во время этого всего процесса не может просмотреть текущую информацию - форма висит. по завершении цикла она сразу же закрывается.
не могу догнать, как не создавая форму во втором потоке, можно вызывать ее методы для вывода данных.

Надеюсь поняли суть проблемы.
Artprog вне форума Ответить с цитированием
Старый 10.01.2012, 16:46   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Не вникая в то что у вас тут могу предложить пользоваться Dispatcher-ром для работы с формой из потока
Guy вне форума Ответить с цитированием
Старый 13.01.2012, 14:47   #3
Artprog
 
Регистрация: 09.01.2012
Сообщений: 5
По умолчанию

Лучше бы Вы вникли в суть..
Artprog вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
формы, потоки и TWebBrowser TipTronic Общие вопросы Delphi 3 05.07.2010 20:10
Из DBGrid одной формы отразить в ListBox на другой формы VenZell БД в Delphi 2 28.05.2010 07:27
Заголовок Child формы имеет цвет неактивной формы, хотя форма активна? PrimaryPro Общие вопросы Delphi 0 12.03.2010 11:12
как привязать размеры содержимого формы к размерам самой формы acid_bmstu Общие вопросы Delphi 4 05.02.2010 05:02
Обращение из формы в dll к элементу главной формы (delphi) a_n_n_a Помощь студентам 3 10.05.2009 04:00