值传递问题(高手进)

bq110 2008-11-18 12:10:49
我想做一个线程不停地运算数值~~
然后得到一个结果String类型~
但程序运算时是界面的FORM
我想在单击按钮开始运算时,弹出一个(DOS界面)控制台界面
来显示计算的结果~string
请高手指点~~谢谢~
100分~
...全文
155 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cevily1234566789 2008-12-05
  • 打赏
  • 举报
回复
看来我要好好学习了
郭军 2008-11-18
  • 打赏
  • 举报
回复
你首先要写一个控制台应用程序,用于不停地运算数值~~ 然后得到一个结果String类型~ 生成.exe文件。
然后在Form应用程序中新建一个Process用于运行这个控制台应用程序,并且向其传递参数。
在Form条用进程,具体可以参照楼上网站内的方法。

private string RunCmd(string command)
{
//實例一個Process類,啟動一個獨立進程
Process p = new Process();

//Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性:

p.StartInfo.FileName = "cmd.exe"; //設定程序名
p.StartInfo.Arguments = "/c " + command; //設定程式執行參數
p.StartInfo.UseShellExecute = false; //關閉Shell的使用
p.StartInfo.RedirectStandardInput = true; //重定向標準輸入
p.StartInfo.RedirectStandardOutput = true; //重定向標準輸出
p.StartInfo.RedirectStandardError = true; //重定向錯誤輸出
p.StartInfo.CreateNoWindow = true; //設置顯示窗口

p.Start(); //啟動

//p.StandardInput.WriteLine(command); //也可以用這種方式輸入要執行的命令
//p.StandardInput.WriteLine("exit"); //不過要記得加上Exit要不然下一行程式執行的時候會當機

return p.StandardOutput.ReadToEnd(); //從輸出流取得命令執行結果

}
wangzhe1945 2008-11-18
  • 打赏
  • 举报
回复
gomoku 说的对
hao1hao2hao3 2008-11-18
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
为什么你要用Console呢?你是不是想要有Console的效果?
那就用一个TextBox,style设置成一个Console模样就可以了
然后后台开一个线程来计算,把结果打在这个textbox上不就可以了?
gomoku 2008-11-18
  • 打赏
  • 举报
回复


private void button1_Click(object sender, EventArgs e)
{
ThreadPool.QueueUserWorkItem(this.DoWork);
}

void DoWork(object state)
{
AllocConsole();
for (int i = 0; i < 100; i++)
{
Console.WriteLine(i.ToString());
Thread.Sleep(500);
}
FreeConsole();
}

[DllImport("Kernel32.dll")]
static extern bool AllocConsole();
[DllImport("Kernel32.dll")]
static extern bool FreeConsole();
xupeiying 2008-11-18
  • 打赏
  • 举报
回复
多线程和异步
Odesky 2008-11-18
  • 打赏
  • 举报
回复
process
bbbbbb888888 2008-11-18
  • 打赏
  • 举报
回复
textbox1.SelectedStart = textBox1.length - 1;
textBox1.ScrollToCaret ();
//滚动条控制
bq110 2008-11-18
  • 打赏
  • 举报
回复
tmxk2002
程序运行起来的时候TEXTBOX不会刷新~
bq110 2008-11-18
  • 打赏
  • 举报
回复
谢谢!OK了~
  • 打赏
  • 举报
回复
TextBox的multline设置成true。
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bq110 的回复:]
其实开始我想用listbox显示(无线程)
结果输出结果时候只有listbox边上的滚动条在动,
文字显示不出来~
楼上的那些方法好像都不行~~~
能让listbox在运行时候显示文字也行~也100分~
[/Quote]

用textBox啊。以前我就做过的。把TextBox背景色设成黑色,前景色设成白色,把Readonly设成true,然后每次写完数据让光标停到TextBox最后一行,呵呵,就跟console一样的效果了。
bq110 2008-11-18
  • 打赏
  • 举报
回复
其实开始我想用listbox显示(无线程)
结果输出结果时候只有listbox边上的滚动条在动,
文字显示不出来~
楼上的那些方法好像都不行~~~
能让listbox在运行时候显示文字也行~也100分~
acqy 2008-11-18
  • 打赏
  • 举报
回复
学习。。。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧