标题:[求助]如何返回一个引用线程 ref
只看楼主
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
 问题点数:0 回复次数:13 
[求助]如何返回一个引用线程 ref
public class newThread
{
private DateTime dt;
private Thread chck;

public DateTime dtback()
{
return dt;
}

public ref Thread Threadback()
{
return this.chck;
}

想返回一个thread引用,对其进行操作,比如销毁。shutdown。
但是格式好像不对,请教各位。
搜索更多相关主题的帖子: ref 线程 
2006-09-05 10:15
aiwei1000
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-7-20
得分:0 

高深啊


2006-09-05 10:44
CrazyWeed0907
Rank: 2
等 级:新手上路
威 望:5
帖 子:1385
专家分:0
注 册:2006-5-30
得分:0 
public ref Thread Threadback()
{
return this.chck;
}
这不对吧

“十步杀一人,千里不留行。事了拂衣去,深藏身与名。”
2006-09-05 10:49
CrazyWeed0907
Rank: 2
等 级:新手上路
威 望:5
帖 子:1385
专家分:0
注 册:2006-5-30
得分:0 
public void Threadback(ref Thread aa)
{
aa = chck ;
}
这样应该能引用了

“十步杀一人,千里不留行。事了拂衣去,深藏身与名。”
2006-09-05 10:52
CrazyWeed0907
Rank: 2
等 级:新手上路
威 望:5
帖 子:1385
专家分:0
注 册:2006-5-30
得分:0 
不过这个引用没什么意义吧

“十步杀一人,千里不留行。事了拂衣去,深藏身与名。”
2006-09-05 10:52
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
得分:0 
恩,报错
1。错误 1 应输入类型 C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\try\try\Form1.cs 56 16 try
2。错误 2 类、结构或接口成员声明中的标记“ref”无效 C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\try\try\Form1.cs 56 16 try

就是不知道要用什么格式可以返回饮用。难道要使用指针?
那就比较郁闷了?
不知道直接使用ref关键字可以返回吗?
可以的话格式是什么?
不可以的话有什么方法可以达到这种效果?

2006-09-05 10:54
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
得分:0 
我是这个意思,我连续初始化了n各线程并将之放入arraylist中,现在想使用close,shutdown依次将之销毁。
如果返回 thread的话,我觉得应该是返回了一个 当前 thread的copy,实际上销毁的是copy版本。
所以才想到使用引用。 或者指针?

反正有点糊涂。

2006-09-05 10:56
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
得分:0 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Collections;

namespace @try
{
public partial class Form1 : Form
{
ArrayList al = new ArrayList();

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
newThread nt = new newThread(DateTime.Now);
listBox1.Items.Add(nt.dtback());
al.Add(nt);
count++;
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{
string s="现在已经启动线程"+count+"个";
MessageBox.Show(s);
foreach (newThread nT in al)
{
MessageBox.Show(nT.dtback().ToString());
}
}
}

public class newThread
{
private DateTime dt;
private Thread chck;

public DateTime dtback()
{
return dt;
}

public ref Thread Threadback()
{
return this.chck;
}

public newThread(DateTime t)
{
dt = t;
chck = new Thread(new ThreadStart(Check));
chck.Start();
}

public void Check()
{
MessageBox.Show("线程创建时间为:"+this.dt);
}
}
}

2006-09-05 10:56
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
得分:0 
我运行一下先。


2006-09-05 10:58
jingzhao22visa
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2006-8-10
得分:0 
public void Threadback(ref Thread aa)
{
aa = chck ;
}

这样还是不行啊。。。
我需要有返回值类型的,返回一个 thread,然后销毁它。
这个代码没有返回值啊


2006-09-05 11:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-88130-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050528 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved