2014-12-25 5 views
1

Моего Form1_Load:Доступ к переменному в пустоте от главного

private void Form1_Load(object sender, EventArgs e) 
{ 
    Thread Usern = new Thread(new ThreadStart(Username)); 
    Usern.Start(); 
} 

И мое Имя пользователя Функция:

public static void Username() 
{ 
    try 
    { 
     string user = Environment.UserName; 
     MessageBox.Show(user.ToString()); 
    } 
    catch(Exception exc) 
    { 
     MessageBox.Show(exc.Tostring()); 
    } 
} 

Кто-нибудь знает, как я бы назвал «пользователь», используемым в функции выше^внутри Событие Form_Load? Я попытался изменить возвращаемый тип функции на строку, но он говорит, что это неверное изменение. Я знаю, что могу просто скопировать и вставить код из функции в событие form_load, но он должен быть в функции.

Спасибо, ребята, заранее и извините за такой «глупый вопрос», поскольку я не нашел ничего связанного с моей проблемой на SO.

+0

Почему бы вам нужно вызвать этот метод 'Username' в другом потоке? Для меня это не имеет смысла. –

+0

Что вы на самом деле пытаетесь сделать? –

+0

Это всего лишь фрагмент полного кода. Я пытаюсь получить всю информацию о ПК, а затем отправить его обратно на сервер для аналитики. –

ответ

0

Вы, вероятно, следует сделать userэкземпляр переменную вместо локальной переменной - другими словами, объявить его в своем классе:

private string user; 

затем в Username() (который должен быть переименован в DetectUserName или что-то подобное) вы бы просто:

user = Environment.UserName; 

Ваш метод должен быть метод экземпляра, хотя, так что это связано с экземпляром класса - г эмулируйте ключевое слово static из объявления метода.

Это не совсем понятно, почему вы хотите сделать это в другом потоке, хотя ...

+0

Спасибо, что это сработало так, как я этого хотел :) Я собираю все виды информации, а затем отправляю все это на сервер в одном куске. Это был всего лишь фрагмент кода. –

+0

@WilliamJ: Возможно, вы захотите инкапсулировать всю эту информацию в одну переменную из некоторого нового типа. Это было бы чище, чем наличие нескольких переменных в вашей форме, если это то, что вы сейчас делаете. Также рассмотрите возможность использования async/wait, если вы можете ... Это может сделать вещи чище. –

Смежные вопросы