GUI и серверное приложение - PullRequest
0 голосов
/ 23 октября 2018

У меня вопрос по поводу WPF и серверного приложения.Мне дали задание написать простой TCP-сервер с графическим интерфейсом.Я новичок в C # (и GUI в целом), поэтому у меня есть вопрос.

У меня есть 2 класса:

App.xaml.cs

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        MainWindow window = new MainWindow();
        if (e.Args.Length != 1)
        {
            MessageBox.Show("Wrong number of arguments!", "An error has occured", MessageBoxButton.OK, MessageBoxImage.Error);
            Environment.Exit(1);
        }
        window.Show();
    }
}

MainWindow.xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void ShowConnectionsButton_Click(object sender, RoutedEventArgs e)
    {
            LogsTextBox.Text += "text\n";
    }
}

, которые изначально были сгенерированы Visual Studio.Я предполагаю, что MainWindow.xaml предназначен для работы с GUI, а App.xaml - для логики приложения.Итак, мой (простой) вопрос: как мне запустить серверную часть?Должно ли это быть

server = new Server();
server.start();
window.Show();

или, может быть,

window.Show();
new Thread(() =>
{
    Thread.CurrentThread.IsBackground = true;
    server = new Server();
    server.start();
}).Start();

или, возможно, использовать BackgroundWorker?

1 Ответ

0 голосов
/ 23 октября 2018

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

Обычно вы хотите, чтобы окно загружалось отдельно при загрузке / извлечении данных.

Вы можетепоместите ваш серверный вызов в событие Loaded .Например:

public void OnLoad(object sender, RoutedEventArgs e)
{
   server = new Server();
   server.start();

  ...
}

Это будет вызвано после загрузки окна и может быть запущено.То, как вы обновите привязки данных, будет зависеть от того, как построен ваш серверный объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...