Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Unity:Hololens在部署时不会运行线程,但在编辑器中工作_Visual Studio_Unity3d_Uwp_Udp_Hololens - Fatal编程技术网

Visual studio Unity:Hololens在部署时不会运行线程,但在编辑器中工作

Visual studio Unity:Hololens在部署时不会运行线程,但在编辑器中工作,visual-studio,unity3d,uwp,udp,hololens,Visual Studio,Unity3d,Uwp,Udp,Hololens,我正试图在全息镜头上发送UDP广播,但由于某些原因,线程无法执行。有趣的是,当我在VS的旧笔记本电脑上编译它时,它工作了?!我比较了已安装的SDK,设置了所有内容,但当我在旧笔记本电脑上编译它时,我不明白为什么它能工作。我一开始发现这一点纯属巧合 这将调用线程: public void StartThread() { //创建用于读取UDP消息的线程 readThread=newthread(newthreadstart(ReceiveData)); readThread.IsBackgroun

我正试图在全息镜头上发送UDP广播,但由于某些原因,线程无法执行。有趣的是,当我在VS的旧笔记本电脑上编译它时,它工作了?!我比较了已安装的SDK,设置了所有内容,但当我在旧笔记本电脑上编译它时,我不明白为什么它能工作。我一开始发现这一点纯属巧合

这将调用线程:

public void StartThread()
{
//创建用于读取UDP消息的线程
readThread=newthread(newthreadstart(ReceiveData));
readThread.IsBackground=true;
readThread.Start();
}
线程看起来像这样:

private void ReceiveData()
{
客户端=新的UdpClient(端口);
client.EnableBroadcast=true;
Log(“线程已启动”);
while(true)
{
尝试
....
调试行甚至不会被执行。我在Unity中工作,但不是在Hololens上,除非我在我的一台旧机器上编译它


有什么想法吗?我完全不知所措。

正如德胡戈所建议的,线程需要像这样启动

public void StartThread()
{
    // create thread for reading UDP messages
    readThread = new Thread(ReceiveData);
    readThread.IsBackground = true;
    readThread.Start();       
}

这就成功了。

您是否尝试使用附加的调试器并设置断点?您是否也尝试只使用
..=new Thread(ReceiveData);
?谢谢,new Thread(ReceiveData);成功了。但它为什么在另一台部署机器上工作毫无意义。是的
从.NET Framework的2.0版开始,不需要显式创建委托。在线程构造函数中指定方法的名称,编译器将选择正确的委托。
但正如您所说,它实际上应该我想也是这样。