|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.12.2013, 06:22 | #1 |
Регистрация: 02.12.2013
Сообщений: 6
|
Обмен данными между двумя потоками.
Здравствуйте, пишу приложение для windows магазина (win 8.1, visual studio 2013 express). Необходимо сделать отображение времени на форме. Время извлекаю, только осталось сделать его обновление каждую секунду соответственно. Использую System.Threading.Timer (так как подобный вид приложений поддерживает только такой таймер).
Собственно вопрос: Как сделать сделать отображение в TextBox (он же label) значение из делегата таймера. Или может каким другим способом это реализовать? Ниже код Код:
Если время присваивать не в textbox а в обычный глобальный стринг, то всё работает нормально. Понял, что форма и таймер этот работает в разных потоках, поэтому необходимо их как то связать. Три ддня на msdn ничего не дали(((
Когда-то и я стану программистом.
|
02.12.2013, 09:46 | #2 |
Пользователь
Регистрация: 27.11.2013
Сообщений: 10
|
приветствуем...объявляешь делегат delegate void UpdateInfo(); вначале проекта, потом создаешь функцию UpdateLabels{
timeText.Text = timeStr; //как провести вот эту операцию? } и в таймере вызывешь: this.Invoke(new UpdateInfo(UpdateLabels), new object[] { }); |
02.12.2013, 10:25 | #3 |
Регистрация: 02.12.2013
Сообщений: 6
|
Ошибка "Требуется метод доступа get или set"
Как быть? Код:
Когда-то и я стану программистом.
|
02.12.2013, 10:33 | #4 |
Регистрация: 02.12.2013
Сообщений: 6
|
Добавил
Код:
""MuProgrr.MainPage" не содержит определения для "Invoke" и не был найден метод расширения "Invoke", принимающий тип "MuProgrr.MainPage" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)" и ""MuProgrr.MainPage.UpdateLabel s" является "свойство", но используется как "метод""
Когда-то и я стану программистом.
|
02.12.2013, 10:38 | #5 | |
Пользователь
Регистрация: 27.11.2013
Сообщений: 10
|
Цитата:
public void UpdateLabels() { timeText.Text = timeStr; } и все работает |
|
02.12.2013, 10:47 | #6 |
Регистрация: 02.12.2013
Сообщений: 6
|
Опять 25, возвращаюсь к тому с чего всё начиналось.
Ошибка 1 "MuProgrr.MainPage" не содержит определение для "Invoke". Не удалось найти метод расширения "Invoke", принимающий первый аргумент типа "MuProgrr.MainPage" (пропущена директива using или ссылка на сборку?)
Когда-то и я стану программистом.
Последний раз редактировалось MrFakir; 02.12.2013 в 10:53. |
02.12.2013, 10:58 | #7 |
Пользователь
Регистрация: 27.11.2013
Сообщений: 10
|
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; namespace WortTest { //объявляю делегат delegate void UpdateInfo(); public partial class Form1 : Form { public string timeStr = ""; System.Windows.Forms.Timer timerTimeSchet = new System.Windows.Forms.Timer(); public Form1() { InitializeComponent(); timerTimeSchet.Tick += new EventHandler(timerProcSchet); timerTimeSchet.Interval = 1; timerTimeSchet.Start(); } private void timerProcSchet(Object myObject, EventArgs myEventArgs) { //получаю в строку время, и извлекаю нужные цифры string time = ""; time = DateTime.Now.ToString(); char[] timeChar = new char[8]; int lenStrTime = time.Length - 11; time.CopyTo(11, timeChar, 0, lenStrTime); timeStr = new string(timeChar); //timeStr получило время формата 00:00:00 this.Invoke(new UpdateInfo(UpdateLabels), new object[] { }); } public void UpdateLabels() { label1.Text = timeStr; // } } } |
02.12.2013, 10:59 | #8 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
|
02.12.2013, 10:59 | #9 |
Пользователь
Регистрация: 27.11.2013
Сообщений: 10
|
timerTimeSchet.Interval в милисекундах
|
02.12.2013, 13:10 | #10 |
Новичок
Джуниор
Регистрация: 25.10.2013
Сообщений: 1
|
Задача по С#
Здравствуйте! Помогите докончить задачу нужно сделать в производном классе bit_str метод арифметического сложения двух битовых строк str и str1
Вот задача Описать базовый класс Строка. Обязательные поля класса: • поле для хранения символов строки; • значение типа word для хранения длины строки в байтах. Реализовать обязательные методы следующего назначения: • конструктор без параметров; • конструктор, принимающий в качестве параметра строковый литерал; • конструктор, принимающий в качестве параметра символ; • метод получения длины строки; • метод очистки строки (сделать строку пустой). Описать производный от Строка класс Битовая_строка. Строки данного класса могут содержать только символы ‘0’ или ‘1’. Если в составе инициализирующей строки будут встречены любые символы, отличные допустимых, класс Битовая_строка принимает нулевое значение. Содержимое данных строк рассматривается как двоичное число. Для класса Битовая_строка определить следующие методы: • конструктор, принимающий в качестве параметра строковый литерал; • деструктор; • присваивание; • вычисление арифметической суммы строк; • проверка на равенство. В случае необходимости более короткая битовая строка расширяется влево знаковым разрядом. Вот код Код.txt |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обмен строками между двумя приложениями | LISTAT | Общие вопросы Delphi | 3 | 04.12.2011 15:43 |
Обмен данными между двумя процессами | ReGreed | Общие вопросы C/C++ | 6 | 27.05.2011 15:31 |
Обмен данными между двумя формами в Delphi | NecroSlider | Помощь студентам | 2 | 30.07.2009 11:52 |
Обмен данными между С++ и С# | Stellvertreter | Общие вопросы C/C++ | 0 | 14.11.2008 14:18 |
Обмен данными между формами | Maks1978 | Общие вопросы C/C++ | 3 | 22.07.2008 15:35 |