小编Szy*_*mon的帖子

WCF webservice - 使用锁定会导致问题吗?

我们有一个WCF Web服务操作,用于生成PDF文件.我们正在使用第三方工具(Syncfusion),我们目前可能无法取代它.

问题是,第三方工具似乎存在多线程问题,并且在某些情况下,当同时多次调用Web服务时,它不起作用.

我们可以通过使用lock并确保只有一个线程执行临界区来解决问题:

Public Class GeneratorController
{
    // object we use for lock
    private static Object thisLock = new Object();

    public void Generate(ref PdfDocument pdfDocument)
    {
        lock (thisLock)
        {
             // critical section
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:这是一个好主意吗?如果我们在Web服务中有这样的代码会导致任何问题吗?

注意

这不是关于Syncfusion的问题.这是关于lock在Web服务中使用的问题.请不要将标签更改为syncfusion.

c# wcf multithreading web-services locking

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

MySQL - 在两台服务器上返回不同的true/false查询

困惑于此.

两台服务器上运行的MySQL版本相同.(从完全相同的rpm构建) - 某些开发人员改变了一些东西...

服务器1:

mysql> select ( not 1 = 2 );

0
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

服务器2:

mysql> select ( not 1 = 2 );

1
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

两台服务器:

mysql> sHOW VARIABLES LIKE 'version';

| version       | 5.6.12 |
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

在尝试使用KitKat在Moto X上使用systrace时获得'Permission denied(13)'

我正在关注http://developer.android.com/tools/debugging/systrace.html,但无法在我的Moto X(KitKat)上运行systrace.有任何想法吗?

$ python systrace.py --time=10 -o mynewtrace.html gfx view wm


error opening /sys/kernel/debug/tracing/options/overwrite: Permission denied (13)
error opening /sys/kernel/debug/tracing/buffer_size_kb: Permission denied (13)
error opening /sys/kernel/debug/tracing/trace_clock: Permission denied (13)
error opening /sys/kernel/debug/tracing/tracing_on: Permission denied (13)
error opening /sys/kernel/debug/tracing/tracing_on: Permission denied (13)
unable to start tracing
error opening /sys/kernel/debug/tracing/options/overwrite: Permission denied (13)
error opening /sys/kernel/debug/tracing/buffer_size_kb: Permission denied (13)
error opening /sys/kernel/debug/tracing/trace_clock: Permission denied (13)
No data was captured.  Output file was not written.
Run Code Online (Sandbox Code Playgroud)

android systrace android-4.4-kitkat

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

Android Chronometer恢复功能

我正在尝试使用Chronometer在我的Android应用程序中创建一个简历按钮.到目前为止,我有这个简历方法的代码片段:

private long pauseResume() {

    long timeWhenStopped = chronometer.getBase() - SystemClock.elapsedRealtime();

    return timeWhenStopped;

}
Run Code Online (Sandbox Code Playgroud)

这是恢复按钮的代码:

 public void onClick(View v) {
      switch(v.getId()) {

          ...

          case R.id.resume_button:                
              chronometer.setBase(SystemClock.elapsedRealtime() + pauseResume());
              chronometer.start();    
              break;

      }
}
Run Code Online (Sandbox Code Playgroud)

问题:例如,当我在00:05暂停计时器然后在10秒钟后按下恢复按钮时,计时器将在00:15重新开始计时.

我希望它再次从00:05开始,而不是00:15,因为它是一个"恢复"功能.

我很高兴你能提供帮助.谢谢.

android chronometer

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

在Android Intent中的putExtra中传递null会导致编译时错误吗?

我正试图putExtra(String,String)在我的代码中使用null.正如参数所示,第二个参数可以null是字符串,我可以发送它

this.getIntent().putExtra(AppConstant.TestString, null);
Run Code Online (Sandbox Code Playgroud)

当我使用上面的代码时,它给我错误说:

方法putExtra(String,String)对于Intent类型是不明确的

但它允许我使用:

this.getIntent().putExtra(AppConstant.TestString, "");
Run Code Online (Sandbox Code Playgroud)

请在此赐教我.提前致谢.

java android

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

SQL Query获取结果集最后一行中所有列值的总和以及行总和(group by)

有人可以帮我写一个查询来获得TCS和TRS吗?

ID  Jan Feb Mar TRS
1   4   5   6   15
2   5   5   5   15
3   1   1   1   3
TCS 10  11  12  
Run Code Online (Sandbox Code Playgroud)

TCS(总列总和)和TRS(总行总和)分别是新的列和行,它们给出了它们.

mysql sql sql-server sql-server-2008

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

在onresume之后,ViewPager中的片段为null

我正在编写一个有2个Tabs的应用程序MainActivity.我使用适用于Eclipse的Android插件创建了活动模板并对其进行了调整.无论如何,当我在一段时间后恢复应用程序时,片段将为空.

这是我的活动的代码(我删除了"不重要的"部分)

public class MainActivity extends FragmentActivity implements
    ActionBar.TabListener {

/**
 * The {@link android.support.v4.view.PagerAdapter} that will provide
 * fragments for each of the sections. We use a
 * {@link android.support.v4.app.FragmentPagerAdapter} derivative, which
 * will keep every loaded fragment in memory. If this becomes too memory
 * intensive, it may be best to switch to a
 * {@link android.support.v4.app.FragmentStatePagerAdapter}.
 */
SectionsPagerAdapter mSectionsPagerAdapter;

private static final String ARG_SECTION_NUMBER = "section_number";

/**
 * Fragment to display markets on a {@link …
Run Code Online (Sandbox Code Playgroud)

java tabs android android-fragments android-activity

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

Admob大小不会填充父级

我将发布下面的代码,我的问题是这个,在模拟器(Genymotion Galaxy Nexus 4.2.2)中,admob横幅拉伸并填充其父级:

在此输入图像描述

在真实设备(Galaxy Nexus 4.3)中,admob横幅不会填充其父级的整个宽度,在两侧留下两条白色条纹:

在此输入图像描述

这是布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <WebView  
 android:id="@+id/webview"
 android:layout_width="fill_parent"
 android:layout_height="0px"
 android:layout_weight="1"/>

    <com.google.android.gms.ads.AdView android:id="@+id/adView"
                         android:layout_width="fill_parent"
                         android:layout_height="wrap_content"
                         ads:adUnitId="ca-app-pub-1470640527107044/6766749615"
                         ads:adSize="SMART_BANNER"/>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是活动的onCreate:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);    
        setContentView(R.layout.activity_detail);


        ActionBar actionBar = getSupportActionBar();            
        actionBar.setDisplayHomeAsUpEnabled(true);

        WebView myWebView = (WebView) findViewById(R.id.webview);    
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);    
        Bundle b = getIntent().getExtras();
        url = b.getString("url");           
        myWebView.loadUrl(url);
        myWebView.setWebViewClient(new MyWebViewClient());


        // Initiate a generic request.
        AdRequest adRequest = new AdRequest.Builder().build();    
        adView = (AdView) findViewById(R.id.adView);
        adView.loadAd(adRequest); …
Run Code Online (Sandbox Code Playgroud)

android admob android-layout

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

扩展方法解析IQueryable vs IEnumerable

假设我有一个实现IQueryable<>(继承IEnumerable<>)接口的类.

当我Where()在其上调用方法时,编译器会将此调用解析为IQueryable扩展,尽管IEnumerable扩展也Where()定义了方法.

问题是编译器如何理解应该调用哪个扩展?

.net c#

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

锁定创建ID的对象

以下方法是否确保一次只能有一个线程读取ID?我有一个使用以下方法的并行进程,我需要它来返回唯一ID.不幸的是,我无法改变ID的结构方式.

private static int Seq = 0;
private static long dtDiff = 0;
private static object thisLock = new object();
private static object BuildClientID(string Code)
{
    lock (thisLock)
    {
        object sReturn = "";
        Seq++;
        dtDiff++;                
        if (Seq == 1000)
        {
            Seq = 0;
            dtDiff = DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("1970-01-01"), DateTime.Now);
         }
         sReturn = dtDiff.ToString() + Code + Seq.ToString("000");
            return sReturn;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# locking

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