Консоль в windows forms - C#
Формулировка задачи:
Всем привет. Подскажите как решить задачку. В приложении windows forms пытаюсь чтобы при нажатии на кнопку отрабатывалось мое приложение. А именно цикл, вызов консоли. Если делаю цикл, то приложение просто виснет. Хотя оно же созданное в шаблоне console работает нормально. Так вот я до минимума все урезал чтобы просто посмотреть выведется ли при нажатии на кнопку моя консоль - фиг. Вылетает с ошибкой. Что я делаю не так?
System.InvalidOperationException не обработано
Message=Невозможно считывать клавиши, когда любое приложение не имеет консоли или ввод данных на консоли был переадресован из файла. Попробуйте использовать Console.Read.
private void button1_Click(object sender, EventArgs e)
{
System.Console.WriteLine("Сработал триггер LONG");
System.Console.ReadKey();
}Решение задачи: «Консоль в windows forms»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using Microsoft.Win32;
using System.Net;
using System.Runtime.InteropServices;
namespace TEST
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Task.Factory.StartNew(Console);
}
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool AllocConsole();
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool FreeConsole();
private void Console()
{
if (AllocConsole())
{
System.Console.WriteLine("Введите текст");
string a = System.Console.ReadLine();
System.Console.WriteLine("Вы ввели: " a);
System.Console.ReadLine();
FreeConsole();
}
}
}
}