问题列表 - 第31162页

处理C#中的竞争条件

我正在编写一个带有分层通信接口的应用程序.
这样做是为了从应用程序的用户界面部分抽象通信,并使其更具可扩展性/可维护性.
例如:

替代文字

将上图中的每个框视为一个单独的类.
通用通信接口填充描述事务数据和通信"运行状况"的字符串变量,这些变量又通过一系列公共函数调用复制到应用程序.例如,应用程序将调用App-Sub-System:

class Application
{
   private void SomeUpdateFunction()
   {
      this.textBox1.AppendText(this.AppSubSystem.GetText());
   }
}

class AppSubSystem
{
   public string GetText()
   {
      return this.GenericCommsInterface.GetText();
   }
}

class GenericCommsInterface
{
   public string GetText()
   {
      string sRetVal = this.sText; // sText is populated by other functions in the class.
      this.sText = null; // Suspected race condition is here.
      return sRetVal;
   }
}
Run Code Online (Sandbox Code Playgroud)

sText由类中的其他函数异步填充.
我相信比赛条件正在发生在string sRetVal = this.sText;以下几行之间this.sText = null;.
有人可以建议一种方法来避免或阻止这种竞争条件吗?会使用StringBuilder帮助,还是有其他方式我应该这样做?

c# race-condition

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

Visual Studio部署项目 - 创建已部署可执行文件的快捷方式

我意识到可能有一种简单的方法可以做到这一点,但是如何创建一个桌面快捷方式来实现使用Visual Studio部署项目构建的MSI部署的可执行文件?

我想我需要使用Filesystem编辑器,但是当我在用户桌面上创建快捷方式时,我无法定位可执行文件.我只能将目标指定为应用程序文件夹而不是特定的可执行文件.

setup-deployment visual-studio

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

PHP strtotime()函数错误1小时?

在将日期和时间插入MySQL数据库之前,我使用PHP将日期和时间转换为时间戳.

我的问题是,当我使用PHP的strtotime函数时,输出时间戳比实际时间晚-1小时.

例如,考虑今天的日期:2010年7月21日.当我使用PHP代码时:

<?php
$my_timestamp = strtotime("07/21/2010");
echo $my_timestamp;
?>
Run Code Online (Sandbox Code Playgroud)

发回的时间戳是GMT等效MINUS 1小时.即我回来了:2010年7月20日23:00:00 GMT而不是2010年7月21日00:00:00 GMT.

我住在英国所以我的时区是GMT.我已经使用date_default_timezone_set('Europe/London')在脚本中声明了我的时区,并且我还确保将php.ini文件设置为'Europe/London'.

这可能与夏令时有关吗?如何在不添加1小时的所有日期的情况下解决问题?

php mysql strtotime unix-timestamp

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

localStorage获取NULL?

我不知道为什么,因为我以前做过这个并且工作正常,我认为这可能是因为浏览器问题/错误:

localStorage.setItem('foo', 'bar')
alert(localStorage.getItem('foo'));
Run Code Online (Sandbox Code Playgroud)

我在Firefox 3.6.6中它警告"bar",但如果我这样做:

//localStorage.setItem('foo', 'bar')
alert(localStorage.getItem('foo'));
Run Code Online (Sandbox Code Playgroud)

我得到NULL.它应该仍然在我的存储空间中返回栏.

此外,这只是一个正在运行的网页.

javascript html5 local-storage

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

拆卸PDP-8程序

这是一个PDP-8计划.请任何人拆卸它.

Binary representation   Octal Representation
111000000001            7001
010000011100            2034
101000010001            5021
101000010000            5020
Run Code Online (Sandbox Code Playgroud)

我想知道这段代码到底在做什么.

PS:这不是作业.我刚在视频中找到了这段代码.没有解释.

assembly disassembly

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

如何在通话期间将视图放在绿色栏下面?

如何在通话期间让我的视图显示在绿色栏下方?现在,我的应用程序在打电话时被绿色栏部分覆盖.

iphone cocoa-touch objective-c interface-builder uiview

11
推荐指数
3
解决办法
9854
查看次数

C++"选择"联盟

不确定是否有这个术语,"选择"似乎有效.我在C++工作,我需要创建一些联合,其中union表示联盟成员之一的选择.跟踪当前的"选择"并始终可用.我目前正在手动编写这些"联合",但我想知道是否有任何巧妙的技巧可以自动执行此类(半).

我试图实现这一点时遇到了没有赋值运算符重载或非trival构造函数或复制构造函数的union限制,但是我意识到因为我实际上正在跟踪当前的"选择",所以存在非常明确的行为在几乎所有情况下都要接受.

这就是我现在正在做的事情(只有两个选择,最多可以是10或15)而且它的代码数量相当大,几乎所有代码都只是样板.另外,如果有人对我下面的内容是否有效甚至是有用的有任何意见,仍然会发现一些C++的疯狂......

struct MyChoice
{
    struct Choice1
    {
        int a;
        char* b;
    };

    struct Choice2
    {
        bool c;
        double d;
    };

    enum Choice
    {
        Choice_Choice1,
        Choice_Choice2
    } choice;

    char _value[max(sizeof(Choice1),sizeof(Choice2))]; // could be private
    Choice1& choice1()
    {
        if(choice == Choice_Choice2)
        {
            (*(Choice2*)_value)->~Choice2();
            (*(Choice1*)_value) = Choice1();
            choice = Choice_Choice1;
        }
        return *(Choice1*)_value;
    }
    Choice2& choice2()
    {
        if(choice == Choice_Choice1)
        {
             (*(Choice1*)_value)->~Choice1();
             (*(Choice2*)_value) = Choice2();
             choice = Choice_Choice2; 
        }
        return *(Choice2*)_value;
    }
    MyChoice()
    {
       _choice = Choice_Choice1;
       (*(Choice1)_value) = Choice1();
    } …
Run Code Online (Sandbox Code Playgroud)

c++ choice unions

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

Java中的持久HttpURLConnection

我正在尝试编写一个java程序,它将自动下载并命名一些我最喜欢的网络漫画.因为我将从同一个域请求多个对象,所以我希望有一个持久的http连接,我可以保持打开直到所有漫画都已下载.以下是我正在进行的工作.如何在不打开新的http连接的情况下从同一个域但是不同的路径发出另一个请求?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class ComicDownloader
{
    public static void main(String[] args)
    {
        URL url = null;
        HttpURLConnection httpc = null;
        BufferedReader input = null;

        try
        {
            url = new URL("http://www.cad-comic.com/cad/archive/2002");
            httpc = (HttpURLConnection) url.openConnection();
            input = new BufferedReader(new InputStreamReader(httpc.getInputStream()));
            String inputLine;

            while ((inputLine = input.readLine()) != null)
            {
                System.out.println(inputLine);
            }

            input.close();
            httpc.disconnect();
        }
        catch (IOException ex)
        {
            System.out.println(ex);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java httpurlconnection persistent

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

如何在JavaScript中插入变量而没有连接?

我知道在PHP中我们可以这样做:

$hello = "foo";
$my_string = "I pity the $hello";
Run Code Online (Sandbox Code Playgroud)

输出: "I pity the foo"

我想知道在JavaScript中是否也可以使用同样的东西.在不使用串联的情况下在字符串中使用变量 - 它看起来更简洁和优雅.

javascript string variables string-interpolation

336
推荐指数
9
解决办法
50万
查看次数

SQL Server XML数据类型和QUOTED_IDENTIFIER

谁能提供这方面的见解?

我使用XML数据类型开发了一个导入过程.通过导入sProc将数据插入到表中之后,我运行另一个过程来使用导入的表更新另一个表.

如果使用SET QUOTED_IDENTIFIER OFF创建更新过程,则会引发异常.我想知道为什么会这样.

这是代码:

DECLARE @xmlRecords XML
SET     @xmlRecords = (SELECT importedXML FROM importTable WHERE importId = @lastImportId)

UPDATE  o
SET     o.ReferralCode = import.refCode
FROM    (
            SELECT  records.record.value('(@orderId)[1]', 'INT') AS orderId, 
                    records.record.value('(@refCode)[1]', 'VARCHAR(15)') AS refCode
            FROM    @xmlRecords.nodes('/records/record') records(record)
            ) import 
            INNER JOIN tblOrder o ON import.OrderId = o.orderId
Run Code Online (Sandbox Code Playgroud)

我假设它与引用的数据类型('VARCHAR(15)')或xml查询路径元素('/ records/record')有关.

感谢您提供的任何见解.

xml sql-server quoted-identifier

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