小编Mar*_*arc的帖子

JavaScript暂停执行函数等待用户输入

我正在尝试使用HTML5画布,JavaScript和XML制作一种游戏.我们的想法是,您可以通过将问题和答案放在XML文件中来进行测验.我写了一个主循环,循环遍历所有问题,构建它们并检查答案的正确性.现在我只是使用警报和对话框来回答问题问题是我的主循环是一个大的互连整体,从头到尾遍历整个游戏,而不是让警报框提出问题和对话框回答,紧接着,我想要一些用户互动.问题的答案显示在屏幕底部的框中​​,用户可以控制起重机选择正确的答案.这是我坚持的主循环代码片段:

answer = loadQuestion(i);
            if (answer == "correct") {
                // answered correctly, update scoreArray and load next question
                scoreArray[currentQuestion] = "correct";
                // show 'next'-button and wait for press to continue

            } else {
                // answered incorrectly again, update scoreArray and load next question
                scoreArray[currentQuestion] = "error";
                // show 'next'-button and wait for press to continue

            }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在调用loadQuestion,它会立即加载问题,显示可能的答案,现在立即抛出一个对话框,您可以在其中键入答案.此答案将被返回并验证.

我已经编程了起重机的控制装置,用户已经可以拿起一个装有它的盒子.但是因为我正在调用loadQuestion并期望它返回一个值,所以这不起作用.如果玩家使用起重机给出答案,我该如何让我的主循环"暂停",然后继续?我已经尝试将答案作为一个全局变量,并且只是在答案==""之前有空,以便在答案获得值之前保持函数忙无所事事,但这只是冻结了脚本.我还试图监视应答变量的状态,并且在发生这种情况时清除间隔并返回值,但是这只是返回false,因为函数完成而没有立即返回值.

javascript pausing-execution

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

字节集合与java中的ByteBuffer类似

我需要一个类似于Java的ByteBuffer的C#实现.感兴趣的方法 - .remaining() - 返回当前位置和限制之间的元素数量. - .array() - .clear() - .put(byte [],int,int)

我开始用MemoryStream...但是没有clear(),还有很多即兴创作此外,我在Koders上找到了ac#implementation:http://www.koders.com/csharp/fid2F8CB1B540E646746D3ADCB2B0AC867A0A8DCB06.aspx? s=socket#L2 ..我会使用..但也许你们知道更好的东西

c# java bytebuffer

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

如何创建虚拟音频设备

我正在使用 C# 开发一个项目,我需要为其创建多个虚拟音频设备。稍后我将自己与他们进行一些切换。

也许有人知道一个不错的库,可以让我自己解决问题。创建音频设备的实例。(商业可以,但免费的 .dll 会更好)

另一种解决方案是一个可选的解决方案,它是找到一种可以根据我的需要创建虚拟音频设备的软件。

c# audio dll virtual device

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

从另一个活动中获取数据

还在研究我的android技能.

我的问题是我的数据库中有一个标签,其中包含一个旋转器中的名称,当我点击标签时,会出现一个对话框并给出三个选择:1.更新.2.删除.3.取消 我完成了第二个和第三个选择,但是在更新中遇到了这个问题; 我转到另一个具有editText和2个按钮,保存和取消的活动,我希望保存按钮从putExtra中的editText获取数据并将其发送回相同的先前活动并使用来自editText.

我感谢任何帮助.提前致谢.

android android-intent

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

如何声明常量

我正在稳定地掌握Objective-C,但我仍然是一个初学者并且有一个初学者级别的问题,希望有人能够阐明:

如果我有一个非常简单的项目,并希望设置一个我将在整个过程中使用的常量,比如一个NSDictionary,其中键是月份名称,值是该月份的天数 - 这是如何完成的?(即,什么命令形式和放在哪里?)

注意: 如果使用内置函数已经可以使用这个例子,也许我们可以假装它不是出于这个问题的目的;)

if-statement objective-c

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

禁用可编辑ComboBox中的MouseWheel作为ItemTemplate

我在ListBox中使用ComboBox作为ItemTemplate.我的ComboBox是可编辑的.当用户在组合框中使用鼠标滚轮时,它会改变当前值.我不希望这样.我想要ListBox滚动.这有什么解决方案吗?我发现的大多数示例都只基于一个只读的ComboBox.似乎我找不到任何解决方案.覆盖OnMouseWheel设置isHandled = true不起作用似乎事件在其他地方处理.我试图在我的ComboBox的ControlTemplate使用的TextBox中覆盖OnMouseWheel但没有成功.

有任何想法吗 ?

wpf combobox listbox itemtemplate mousewheel

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

如何对单个空格进行字符串比较

我想检查列是否具有任何单个空格字符的值.

我最初想的是

WHERE my_column = ' '
Run Code Online (Sandbox Code Playgroud)

会是明智的.但不是.这也将匹配具有多个空格的列,原因如下:

SELECT '    ' = ' '           => true
Run Code Online (Sandbox Code Playgroud)

所以我可以使用常规快速或十六进制编码来测试:

WHERE HEX(my_column) = '20'
WHERE my_column REGEXP '^\ $'
Run Code Online (Sandbox Code Playgroud)

两者都有效.但我怀疑两者(当然后者)的效率都很低.

有没有更好的办法?

mysql sql

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

Windows窗体作为非托管应用程序的子窗口

我正在寻找一种方法来嵌入用C#编写的Windows窗体应用程序在C++窗口应用程序中.本机应用程序主窗口细分为多个窗格.C#app应该出现在其中一个窗格中,即C#组件的根窗口(最外面的窗体)必须是主应用程序的子窗口.

可以这样做吗?如果是这样,怎么样?

一些额外的背景:据我所知,有两种方法可以解决这个问题.首先,使用.net托管API(ICLRRuntimeHost等)在本机应用程序中托管CLR.其次,通过将Windows窗体放在ActiveX控件中来托管CLR.

关于第一种方法,我设法启动CLR并加载C#程序集(主要归功于MattiasHögström).在我遇到障碍的地方是我看不出如何告诉我在CLR中运行的组件它需要是从C++端传入的窗口的子代.

我还尝试了第二种方法(使用ActiveX并感谢Daniel Yanovsky).它几乎,但只是差不多,适合我的目的.我可以让任意Windows窗体组件在本机应用程序的子窗格中运行.但它们总是在主应用程序的主线程上运行.这意味着他们使用主应用程序的Windows消息循环.MSDN说这不会可靠地工作,因为标准的Windows消息循环不符合Windows窗体的要求(我想在这里发布到MSDN的链接,但已经用完了我的新用户双链接分配).

根据MSDN,Internet Explorer和MFC应用程序的消息循环问题的例外情况.我作为主机使用的本机应用程序绝对不是Internet Explorer.此外,它使用由wxWidgets包装的Windows API,因此MFC不是(或至少不是受欢迎的)选项.

Microsoft提出的解决方案涉及让C#组件在自己的线程上运行自己的消息循环.至少据我所知,这必然会导致回到上面提到的第一种方法.所以我回到了让Windows窗体在传入的父窗口下工作的问题.

同样,我对任何澄清子窗口问题的输入感兴趣,与我在这里提到的方法无关.但根据上下文,我可以将一般性问题减少到两个具体问题(我只需要对其中一个问题给出答案):

  • 给定在ActiveX控件中托管的Windows窗体,如何允许窗体在其自己的线程上的自己的消息循环中运行?

要么

  • 给定在本机应用程序托管的CLR中运行的Windows窗体,如何使窗体成为本机应用程序中窗口的子窗口?

c# c++ clr winapi

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

无锁参考计数

我正在研究一个需要广泛的C API互操作的系统.部分互操作需要在任何操作之前和之后初始化和关闭相关系统.如果不这样做将导致系统不稳定.我通过简单地在核心一次性环境类中实现引用计数来实现这一点,如下所示:

public FooEnvironment()
{
  lock(EnvironmentLock)
  {
    if(_initCount == 0)
    {
      Init();  // global startup
    }
    _initCount++;
  }
}

private void Dispose(bool disposing)
{
  if(_disposed)
    return;

  if(disposing)
  {
    lock(EnvironmentLock)
    {
      _initCount--;
      if(_initCount == 0)
      {
        Term(); // global termination
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这很好,并完成了目标.但是,由于任何互操作操作必须使用块嵌套在FooEnvironment中,因此我们始终锁定并且分析表明此锁定占运行时期间完成工作的近50%.在我看来,这是一个基本的概念,.NET或CLR中的某些东西必须解决它.有没有更好的方法来进行引用计数?

.net c# concurrency locking reference-counting

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

固定.NET对象数组

我想固定.NET对象(包括对象)的数组,以允许本机函数对对象进行一些处理.据我所知,GCHandle.Alloc()不允许我这样做,因为这样的数组包含引用(并且对象也可能包含引用),这些引用不是blittable.

有没有其他选择来实现这一目标?对于非常黑客的建议或需要Mono的建议我会没事的.

.net c# mono interop garbage-collection

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