小编iTE*_*Egg的帖子

.NET ThreadPool QueueUserWorkItem同步

我正在使用ThreadPool.QueueUserWorkItem来播放一些声音文件而不是挂起GUI.

它有效,但有不良副作用.

在执行QueueUserWorkItem CallBack Proc时,没有什么可以阻止它启动新线程.这会导致线程中的样本重叠.

我怎样才能使它等待已经运行的线程完成运行,然后才运行下一个请求?

编辑: private object sync = new Object(); lock (sync) { .......do sound here }

这很有效.按顺序播放声音.

但是当一个正在播放的声音请求结束之前我继续发送声音请求时,一些样本会被播放多次.将调查.

编辑:上面是锁定护卫@Aaronaught提到的结果?

.net c# synchronization threadpool

9
推荐指数
2
解决办法
7717
查看次数

c#切换问题

我是编程新手并遇到以下代码问题的新手:

    private string alphaCoords(Int32 x)
    {
        char alphaChar;

        switch (x)
        {
            case 0: alphaChar = 'A'; break;
            case 1: alphaChar = 'B'; break;
            case 2: alphaChar = 'C'; break;
            case 3: alphaChar = 'D'; break;
            case 4: alphaChar = 'E'; break;
            case 5: alphaChar = 'F'; break;
            case 6: alphaChar = 'G'; break;
            case 7: alphaChar = 'H'; break;
            case 8: alphaChar = 'I'; break;
            case 9: alphaChar = 'J'; break;
        }

        return alphaChar.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

编译器说:使用未分配的局部变量'alphaChar'

但我正在我的交换机块中分配它.

我确定这是我的错,因为我对编程知之甚少.

请指教.

谢谢.

c# switch-statement unassigned-variable

8
推荐指数
1
解决办法
4799
查看次数

Java停止服务器线程

以下代码是我的应用程序中的服务器代码:

private int serverPort;

private Thread serverThread = null;

public void networkListen(int port){

    serverPort = port;

    if (serverThread == null){
        Runnable serverRunnable = new ServerRunnable();
        serverThread = new Thread(serverRunnable);
        serverThread.start();
    } else {

    }
}

public class ServerRunnable implements Runnable {

    public void run(){

        try {

            //networkConnected = false;
            //netMessage = "Listening for Connection";
            //networkMessage = new NetworkMessage(networkConnected, netMessage);
            //setChanged();
            //notifyObservers(networkMessage);

            ServerSocket serverSocket = new ServerSocket(serverPort, backlog);

            commSocket = serverSocket.accept();

            serverSocket.close();
            serverSocket = null;

            //networkConnected = true;
            //netMessage = "Connected: …
Run Code Online (Sandbox Code Playgroud)

java multithreading

8
推荐指数
2
解决办法
1万
查看次数

c#无法访问已处置的对象

我正在制作服务器/客户端应用程序.

我将服务器套接字设置为侦听,并设置BeginAccept()方法.当我关闭服务器套接字(Socket.Close())以关闭服务器时,从BeginAccept()方法的异步回调方法抛出一个异常.我检查了异常,我发现异常这样说:

消息"无法访问名为"System.Net.Sockets.Socket"的已处置对象.对象名称:"System.Net.Sockets.Socket"." 串

在我看来,这只是这个:"当我调用Socket.Close()方法时,套接字被处理,但是在套接字关闭之前没有释放回调."

我在网上搜索并发现这不是错误,而是取消了beginaccept的设计异常.

我的问题如何处理这个除外?需要进行哪些处理?

我只是将它视为正常事件:

      OnNetworkEvents eventArgs = new OnNetworkEvents(false, "Ready", e.Message);
      OnUpdateNetworkStatusMessage(this, eventArgs);
Run Code Online (Sandbox Code Playgroud)

任何评论仍然欢迎.

.net dispose object

7
推荐指数
1
解决办法
2万
查看次数

C#类继承

问候.我有以下课程:

public class Ship
{
    public enum ValidShips
    {
        Minesweeper,
        Cruiser,
        Destroyer,
        Submarine,
        AircraftCarrier
    }

    public enum ShipOrientation
    {
        North,
        East,
        South,
        West
    }

    public enum ShipStatus
    {
        Floating,
        Destroyed
    }

    public ValidShips shipType { get; set; }

    public ShipUnit[] shipUnit { get; set; }

    public ShipOrientation shipOrientation { get; set; }

    public ShipStatus shipStatus { get; set; }

    public Ship(ValidShips ShipType, int unitLength)
    {
        shipStatus = ShipStatus.Floating;

        shipType = ShipType;

        shipUnit = new ShipUnit[unitLength];

        for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

c# inheritance class base

7
推荐指数
2
解决办法
2141
查看次数

C#睡眠500毫秒

你能否告诉我如何暂停我的程序500毫秒然后继续?

我读Thread.Sleep(500)的不好,因为它阻止了GUI线程.

使用计时器会触发回调......

我只想等待500毫秒然后继续下一个声明.

请指教.

编辑:我需要显示状态栏消息500毫秒,然后用另一个消息更新消息.对不起,我的意思是500不是50.

编辑:我明白你所说的话.但是:[我只想等待500ms然后继续下一个声明.]我认为因为它是如此短的间隔我将在主GUI线程上做一个Thread.Sleep(500).否则我将不得不重写大量代码以适应500毫秒的这个短暂间隔.

编辑:我将尝试重新格式化我的状态消息,因此不需要暂停.

c# sleep timer

7
推荐指数
2
解决办法
2万
查看次数

如何仅在JTextArea的部分中显示粗体文本?

我可以将a的文本更改JTextArea为粗体(附加文本),然后恢复正常,它是否只显示粗体文本,其余部分正常显示?

也可以将内容JTextArea保存为RTF文档?

java swing jtextarea

7
推荐指数
1
解决办法
3万
查看次数

C#通过socket发送结构对象

我在c#中用客户端/服务器编程做了一些阅读.我对这个过程非常熟悉,可以提出以下问题:

我如何通过tcp/ip而不仅仅是字符串传输结构对象?

我的应用程序是一个具有聊天功能的联网游戏.所以我不想只传输文本,而是想要构建一个包含两个字段的数据结构或类结构:i.包类型ii.数据包类型的数据

我会在应用程序执行期间需要时传输它,并在接收端解码数据对象并将其放在它所属的位置.

我不寻找代码,只是一些想法和搜索语句,我可以提供给谷歌,所以我会; 有一个更好的理解.

香港专业教育学院阅读有关序列化/反序列化,是他的方式去?

谢谢.


我已经检查了相关主题但仍然需要进一步指导的帖子.


c# sockets tcp

6
推荐指数
4
解决办法
2万
查看次数

刷新后的持久数据

我有一个网页,我遇到了麻烦.它工作正常:您从下拉菜单中选择并更新图像.

问题是手动刷新页面时:显示初始图像,但下拉菜单选项保持不变; 好吧,我解决了这个问题.

真正的问题是刷新后,当我选择一个新项目时,由于某种原因显示刷新前的项目.

如何更改此选项以便在显示刷新后显示新选择而不是前一个选择?

我的代码在Chrome,Firefox和Safari中运行良好,但不适用于IE9.

这是我正在使用的JavaScript代码:

function doMillviewInitialise()
{
    window.document.forms[0].reset();
}
Run Code Online (Sandbox Code Playgroud)

这是HTML:

<form>
    <select id="millviewStyle" onchange="doMillview();">
        <option value="self">Millview @ Guygar.com&copy;</option>
        <option>----------------------</option>
        <option value="midnightExpress">Midnight Express</option>
        <option value="turnedOn">Turned On</option>
        <option value="storage">Storage</option>
        <option value="plasticStress">Plastic Stress</option>
        <option value="mirrorEffect">Mirror Effect</option>
        <option value="okComputer">OK Computer</option>
        <option value="repertoire">Repertoire</option>
        <option value="calibrate">Calibrate</option>
        <option value="hysteria">Hysteria</option>
        <option value="lastExit">Last Exit</option>
    </select>
</form>
Run Code Online (Sandbox Code Playgroud)

html javascript internet-explorer refresh

6
推荐指数
1
解决办法
1861
查看次数

.NET视频音频聊天

我是应用程序开发方面的初学者.

到目前为止,我已经在C#中开发了BattleShips的点对点游戏,并在Java中开发了Connect 4的点对点游戏.

对于我的下一个项目,我决定去多媒体.

我想实现一个点对点聊天程序,它使用音频/视频流到每个客户端以及文本聊天和文件传输.我想在C#中实现它.

我的问题应该从哪里开始?

我已阅读SO和其他各种来源,但由于我缺乏经验,它仍然被证明是神秘的.

任何新手级别的提示都是最受欢迎的,即寻找相对容易理解的教程.

c# audio video streaming chat

5
推荐指数
1
解决办法
7868
查看次数