Использование операторов, не распознанных в классе
Я пытаюсь написать поток, который будет загружать данные в winform, в то время как другая обработка продолжается в фоновом режиме. Я поместил определение класса thread в отдельный файл в проекте-Thread. cs. Вот код в этом файле:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Diagnostics; using System.Windows.Forms; namespace Thread_Test_Sending_Data_to_Thread_Function { using System.Windows.Forms; public class Thread1 { private delegate void SetLabelTextDelegate(FormData InputClass); public void FormWriteMethod(FormData InputClass) { if (this.InvokeRequired) { this.BeginInvoke(new SetLabelTextDelegate(FormWriteMethod), new object[] { InputClass }); return; } TestLabel1.Text = InputClass.Label1Data.ToString(); TestLabel2.Text = InputClass.Label2Data.ToString(); } } }
Я знаю, что определение InvokeRequired находится в системе.Окна.Формы. Ссылка работает в основном корпусе, но когда я пытаюсь сослаться на InvokeRequired или BeginInvoke в Thread. cs, она не распознается, даже если я использовал System.Окна.Формы. Ни один из операторов using в файле не распознается.
Что происходит?
Спасибо за любую помощь,
Энди Крус
Что я уже пробовал:
Я пробовал ссылаться на методы Invoke в основном корпусе, и это прекрасно работает. Я также попробовал аналогичную ссылку в других небольших файлах классов с тем же результатом - а именно, похоже, что операторы using не распознаются.
andycruce
У меня изначально не было системы использования.Окна.Оператор Forms внутри пространства имен, просто список операторов using в верхней части файла. Я положил туда только для того, чтобы посмотреть, сработает ли это. Я просто удалил единственный оператор using внутри пространства имен, чтобы вернуться к исходной конфигурации, и результат был все тот же. использование системы.Окна.Формы не используются-VS предлагает удалить все операторы using как неиспользуемые - и все методы Invoke не распознаются.
andycruce
Я просто попробовал кое-что еще. Я взял код потока и поместил его в класс, содержащийся в основной программе. Как только я положу код в класс
публичный класс что угодно
{
многопоточный код
}
методы invoke не распознаются.