小编Kur*_*rru的帖子

同步异常

我有两个线程,一个线程处理队列,另一个线程将内容添加到队列中。

  1. 我想在队列处理线程完成处理队列后将其置于睡眠状态
  2. 我想让第二个线程告诉它在将项目添加到队列时唤醒

然而,这些函数在调用时调用System.Threading.SynchronizationLockException: Object synchronization method was called from an unsynchronized block of codeMonitor.PulseAll(waiting);因为我尚未将函数与等待对象同步。[我不想这样做,我希望能够在将项目添加到队列时进行处理]。我怎样才能实现这个目标?

Queue<object> items = new Queue<object>();
object waiting = new object();
Run Code Online (Sandbox Code Playgroud)

第一个线程

public void ProcessQueue()
{
 while (true)
 {
   if (items.Count == 0)
     Monitor.Wait(waiting);

    object real = null;
    lock(items) {
    object item = items.Dequeue();
    real = item;
    }
    if(real == null)
        continue;
    .. bla bla bla
 } 
}
Run Code Online (Sandbox Code Playgroud)

第二个线程涉及

public void AddItem(object o)
{
 ... bla bla bla
 lock(items)
 {
 items.Enqueue(o);
 } …
Run Code Online (Sandbox Code Playgroud)

c# queue multithreading monitor

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

以编程方式检测调试密钥库或释放密钥库

我想知道是否有办法检测程序是否在默认(调试)密钥库(从eclipse运行时)或签名密钥库(当发布到Android市场时)运行时

我在我的应用程序中使用Google Maps,并且我希望以编程方式更改Maps API密钥以进行测试和发布,因为一个API密钥仅适用于测试或发布.

必须有一种方法可以做到这一点,因为谷歌地图可以检测用于编译应用程序的密钥库(启用或禁用地图).

android google-maps keystore

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

如何用显示器替换此信号量?

在我之前的一个问题中,有人曾暗示使用信号量与使用显示器相比在C#中使用信号量昂贵.所以我问这个问题,如何用监视器替换此代码中的信号量?

我需要function1在function2(在一个单独的线程中)完成后返回它的值.我已经替换了Semaphore.WaitOnea Monitor.WaitSemaphore.Releasea,Monitor.PulseAll但是PulseAllWait导致程序挂起之前被触发了.知道如何避免这种竞争条件吗?

Semaphore semaphore = new Semaphore(0,1);
byte b;
public byte Function1()
{
    // new thread starting in Function2;

    semaphore.WaitOne();
    return b;
}

public void Function2()
{
    // do some thing
    b = 0;
    semaphore.Release();
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading semaphore monitor race-condition

4
推荐指数
1
解决办法
1848
查看次数

NAudio演示不再工作了

我只是试图运行NAudio演示,我得到一个奇怪的错误:

System.BadImageFormatException: Could not load file or a
ssembly 'NAudio, Version=1.3.8.0, Culture=neutral, PublicKeyToken=null' or one o
f its dependencies. An attempt was made to load a program with an incorrect form
at.
File name: 'NAudio, Version=1.3.8.0, Culture=neutral, PublicKeyToken=null'
   at NAudioWpfDemo.AudioGraph..ctor()
   at NAudioWpfDemo.ControlPanelViewModel..ctor(IWaveFormRenderer waveFormRender
er, SpectrumAnalyser analyzer) in C:\Users\Admin\Downloads\NAudio-1.3\NAudio-1-3
\Source Code\NAudioWpfDemo\ControlPanelViewModel.cs:line 23
   at NAudioWpfDemo.MainWindow..ctor() in C:\Users\Admin\Downloads\NAudio-1.3\NA
udio-1-3\Source Code\NAudioWpfDemo\MainWindow.xaml.cs:line 15

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\M
icrosoft\Fusion!EnableLog] (DWORD) to 1. …
Run Code Online (Sandbox Code Playgroud)

.net c# audio naudio

4
推荐指数
1
解决办法
1517
查看次数

番石榴Eventbus不工作

我正在尝试在Android中使用Guava事件总线,但我订阅的事件似乎不起作用......我做错了什么?

这是我的活动:

package test.eventbus;

import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class EventBusTestActivity extends Activity {

    EventBus eventbus = new EventBus();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        eventbus.register(this);
        eventbus.post("message");
    }

    @Subscribe
    void testEvent(Object bla) {
        Log.d("EventBus Event", bla.toString());
    }

}
Run Code Online (Sandbox Code Playgroud)

android guava event-bus

4
推荐指数
1
解决办法
2033
查看次数

为什么resources.getStringArray(int)会抛出异常?

我打电话给

Resources resources = Resources.getSystem();
String[] networkFiles = resources.getStringArray(R.array.xmlNetworkFiles);
Run Code Online (Sandbox Code Playgroud)

我知道这个资源数组存在(因为我可以用自动生成的R文件引用它),但它继续抛出ResourceNotFoundException.

可能导致这种情况的原因以及我该怎么做才能解决这个问题?

我在其他地方使用了类似的代码来检索一个int数组,但是这个代码在我的单元测试中总是失败.

java resources android exception

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

Eclipse Package Explorer奇怪

最近每当我在Eclipse中打开我的工作区时,Package Explorer总是默认专注于我所有项目/资源文件的单个文件夹.我已经忍受了几个月,因为我可以"完成"以回到项目级别.

但是,我想对此进行排序.有谁知道我怎么能阻止Eclipse打开这个特定的文件夹作为默认值?

eclipse package-explorer

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

如何使用 HTMLcleaner 获取元素的值

尝试获取元素“a”和“span”的值。使用 HTMLCleaner。

\n\n
<div class="info">\n  <p class="name">\n    <a href="http://www.zxdv.com/level/1/film/616/sr/1/">Tron</a> \n    <span class="year">2001</span>\n  </p>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是代码:

\n\n
TagNode linkElements[] = rootNode.getElementsByName("div", true);\nint s=0;\nfor (int i = 0; linkElements != null && i < linkElements.length; i++)\n{\n    if (linkElements[i].getAttributes().toString().equals("{class=info}")) {\n        TagNode linkElements2[] = linkElements[i].getElementsByName("p", true);\n        for (int i2 = 0; linkElements2 != null && i2 < linkElements2.length; i2++)\n        {\n            TagNode linkElements3[] = linkElements2[i2].getElementsByName("a", true);\n            TagNode linkElements4[] = linkElements2[i2].getElementsByName("span", true);\n            for (int i3 = 0; linkElements3 != null && i3 < linkElements3.length; i3++)\n            {\n …
Run Code Online (Sandbox Code Playgroud)

java android htmlcleaner

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

你如何防止 Angular-Dart 中的默认事件

在下面的代码示例中,有一种“ Angular 方式”可以防止按钮单击或表单提交的默认事件。目前我正在使用“onsubmit”来完成任务。

<form onsubmit="return false;">
  <input ng-model="ctrl.task">
  <button class="btn btn-primary" ng-click="ctrl.addTask()">Add</button>
</form>
Run Code Online (Sandbox Code Playgroud)

dart angular-dart

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

我可以将2种风格加入到超级风格中吗?

我希望将两种风格结合在一起,形成一种超级风格,方便我的页面使用和自定义.

有可能定义这样的东西吗?(如果是这样的话)

.bold { font-weight: bold;}
.color1 {color: white;}

.boldColor {.bold; .color1;}

where .boldColor is effectively

.boldColor {font-weight:bold; color:white;}
Run Code Online (Sandbox Code Playgroud)

我希望这样,以便我可以在页面上拥有样式,并且能够在一个地方轻松地更改许多地方的颜色.我目前正在使用,<p class="bold color">但我的一些课程变得越来越长,所以我希望能够使用<p class="boldColor">

谢谢

css styles class

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