Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 14

Как передать значение в другой поток? (сложности с потоками)

26.05.2014, 12:20. Показов 2215. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может я не совсем корректно объявил название темы, но голова уже совсем не варит(
Есть код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Threading;
using System.IO;
 
namespace stoloto
{
    public partial class SpeedTest : Form
    {
        public SpeedTest()
        {
            InitializeComponent();
        }
 
        private void SpeedTest_Load(object sender, EventArgs e)
        {
            label1.Text = "Ждите..";
            Thread SpeedTestNewThread = new Thread(speed);
            SpeedTestNewThread.Start();
            backgroundWorker1.RunWorkerAsync();
        }
 
        private void speed()
        {
            try
            {
                WebClient wc = new WebClient();
                Uri uri = new Uri("http://c.speedtest.net/flash/speedtest-unicode.swf");
                DateTime dt1 = DateTime.Now;
                wc.DownloadFileAsync(uri, "tester.tf");
                FileInfo file = new FileInfo("tester.tf");
                wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
                DateTime dt2 = DateTime.Now;
                double file_size = file.Length;
                double sm = (file_size * 8) / (dt2 - dt1).TotalSeconds;
                int smi = Convert.ToInt32(sm);
                Invoke(new Action(delegate
                    {
                        label1.Text = "Средняя скорость загрузки: " + Convert.ToString(smi / 1024) + " Kb\\s.";
                    }));
            }
            catch(WebException)
            {
                MessageBox.Show("Постоянные разрывы связи!\rПопытайтесь позднее.");
                Invoke(new Action(delegate
                    {
                        Close();
                    }));
            }
        }
 
        void webClient_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
        {
 
            Invoke(new Action(delegate
                {
                    progressBar1.Value = e.ProgressPercentage;
                }));
        }
Результатом его выполнения должен служить вывод окна, загрузка файла, динамическое заполнение progressbar и по окончании загрузки в label1 должно вывести значение скорости.

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

Добавлено через 1 час 28 минут
CyberforumThemes.MyTheme.up();


Добавлено через 14 часов 34 минуты
Никто не поможет?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2014, 12:20
Ответы с готовыми решениями:

Как передать элемент в другой поток?
Здравствуйте, вопрос такой: на форме три TextBox'а, мне нужно создать новый поток и в нем собрать тексты с этих контролов и что то с ним...

Как передать значение с одной формы на другой
В общем есть 3 формы: -авторизация -меню -теория с начало пользователь авторизуется и если он ввел пароль администратора то...

Как передать значение одного input в другой?
что то тут не так <div id="btn"> кнопка </div> <input type="text" id = "start" placeholder = "balls" value =...

2
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,099
26.05.2014, 14:21
Цитата Сообщение от nikulinlg Посмотреть сообщение
wc.DownloadFileAsync(uri, "tester.tf");
Согласно документации, да и название метода однозначно указывает, запускает свой поток в котором и скачивает файл ассинхронно.
Цитата Сообщение от nikulinlg Посмотреть сообщение
double sm = (file_size * 8) / (dt2 - dt1).TotalSeconds;
А тут у Вас деление на ноль так как времени прошло почти ничего
1
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 14
28.05.2014, 22:56  [ТС]
nedel, спасибо. Буду копать..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2014, 22:56
Помогаю со студенческими работами здесь

Как передать получить значение с другой страницы
Может кому-то погажется вопрос немного глупым, но всё же....дупостим есть index.php, на которой расположена форма с 3-мя полями 2-м...

Как передать значение формы в другой файл?
После редиректа из формы отправки письма на другой файл нужно вывести сообщение: <div><? $_POST?> сообщение успешно...

Как передать значение переменной из одного метода в другой?
private void textBox2_TextChanged(object sender, EventArgs e) { char input_symbol =...

Как передать значение value и принять его на другой странице?
Есть вот такой большой input: <input type="text" title="Поиск" id="text_field_1" class="input1" value="<?php echo $searchstring;...

Как передать значение переменной С++ с одного ПК на другой по Ethernet?
Как передать значение переменной С++ с одного ПК на другой по Ethernet? Какую книгу почитать новичку, чтобы разобраться как программами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru