forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Ошибка (http://forum.boolean.name/showthread.php?t=13247)

den 29.08.2010 17:02

Ошибка
 
Вложений: 2
Почему когда я запускаю приложение из компилятора (F5), после нажатия кнопки "подключение" в приложении (это интерент чат), выдаёт ошибку
Вложение 11089
а когда просто запускаю откомелированное приложение из папки всё нормально?
Если поудалять все строчьки на которые оно ругается, то работает, но хотелось бы не удолять.
Смена Дебуг и Релэйс версии не помогает.
Раньше (на старой винде) всё работало, а сейчас нет.
ЗЫ-приложение не моё, вот выкладываю Вложение 11091

pax 29.08.2010 19:26

Ответ: Ошибка
 
Ну ясно же написано - проблема с потоками. Я вообще с потоками не работал особо.

Мне кажется стоит использовать для проблемных переменных, которые используются в разных потоках либо синхронизацию либо лочить их на время изменения с помощью lock

Возможно будет полезным почитать данную статью о синхронизации потоков

Dream 29.08.2010 22:08

Ответ: Ошибка
 
Den, хватит при каждой ошибке создавать тему и просить о помощи. В чём смысл? чему ты так научишься?
По теме. если методы идут в форме/контроле юзай InvokeRequired и Invoke

den 29.08.2010 23:39

Ответ: Ошибка
 
Блин код странный какойто: поставил в месте ошибки try{ошибка} catch{} запустил - всё равно ошибка. Перезапустил вижуал студио - всё норм:)
это наверно глюк а не ошибка:)
upd-пля!!!!
что за код попался такой, каждый раз новая ошибка!!!:bad:

pax 30.08.2010 01:18

Ответ: Ошибка
 
Ошибки в синхронизации потоков блоками try - catch не отловить. Так что изучай синхронизацию, раз такой код ;)

Учись на чужих ошибках, а сам их не делай

den 30.08.2010 13:48

Ответ: Ошибка
 
Появилась ещё одна интересная особенность: если запускать не F5 а Ctrl+F5 всё работает!
Лано, буду через Ctrl+F5 запускать, всёравно в компелированном (.ехе) виде работает:lol:

Dream 30.08.2010 16:47

Ответ: Ошибка
 
а сам код работает? что он там должен выполнять? то что ты не видишь сообщений об ошибках не значит что их нету.

den 30.08.2010 17:18

Ответ: Ошибка
 
Цитата:

а сам код работает? что он там должен выполнять? то что ты не видишь сообщений об ошибках не значит что их нету.
да вроде работает:)
а вобще это чат через сокеты (многопользовательский, серверный)

ІГРОГРАЙКО 07.04.2011 01:34

Ответ: Ошибка
 
Вложений: 1
Вечер Добрый!
Я решыл не создавать другую тему а написать в етой.

Так вот:
Я хочу передать значение с TextBox(a) в переменную соседнего с формой класса.
То есть с (FileOptions : Form).textBox1.Text -> (VolumeRender : MyClass).fWidth

Я сделал:
Код:

//Обявил нужный класс в файле FileOptions.Designer.cs
private VolumeRender volumeRender;

//Акция в файле FileOptions.cs
        private void button1_Click(object sender, EventArgs e)
        {
            if (
                textBox1.Text == "" |
                textBox2.Text == "" |
                textBox3.Text == ""
                )
            {
                MessageBox.Show("Введіть будь ласка дані про розмір текстури", "Є незаповнені поля!");
            }
            else
            {
                volumeRender.fWidth = Convert.ToInt32(textBox1.Text);
                volumeRender.fHeight = Convert.ToInt32(textBox2.Text);
                volumeRender.fDepth = Convert.ToInt32(textBox3.Text);
                volumeRender.filename = mainForm.openFileDialog.FileName;
            }
        }

И когда я заполняю форму и жму "ОК" - Вилетает:
Вложение 13254
Посоветуйте мне что сделать. Пожалуйста!

pax 07.04.2011 01:44

Ответ: Ошибка
 
Пробуй этим: http://msdn.microsoft.com/ru-ru/library/f02979c7.aspx

кстати ты уверен, что переменная volumeRender не null? наведи на нее мышку при ошибке и псмотри
иначе private VolumeRender volumeRender = new VolumeRender();

Dream 07.04.2011 01:51

Ответ: Ошибка
 
да, в InitializeComponents() добавь код создания твоей переменной

ІГРОГРАЙКО 07.04.2011 01:57

Ответ: Ошибка
 
Вложений: 1
Да! ты был прав:
Вложение 13255
Я просто забил о том что надо написать еще такое:
Код:

        private void InitializeComponent()
        {
            this.volumeRender = new VolumeRender();
            ...
        }

Спасибо! :-)


Часовой пояс GMT +4, время: 01:49.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot