小编MKI*_*KII的帖子

在C#中以独占模式打开文件

我想在独占模式下打开一个文件进行读取,如果某个进程/线程已经打开了该文件,我想收到一个异常.我尝试了下面的代码,但没有工作,即使我打开了foo.txt,我仍然可以访问Console.WriteLine语句.有任何想法吗?

static void Main(string[] args)
{
    using (Stream iStream = File.Open("c:\\software\\code.txt", FileMode.Open,
    FileAccess.Read, FileShare.None))
    {
        Console.WriteLine ("I am here");
    }

    return;
}
Run Code Online (Sandbox Code Playgroud)

c# io file

17
推荐指数
3
解决办法
4万
查看次数

eclipse c ++一次从build中排除多个文件?

不要单独右击每一个,勾选"从构建中排除"等,以及如何将它们整体包括在内?

谢谢

c++ eclipse build

11
推荐指数
1
解决办法
9259
查看次数

AS3中的匿名功能有什么用?

我遇到过它们,但我还没有明白为什么要使用它们.有人可以解释一下吗?

flash anonymous function actionscript-3

9
推荐指数
1
解决办法
8252
查看次数

在同一类的多个UIView上设置独家触摸

我正在创建一个随机数量的同一个类的自定义UIViews,我将它们添加到UIViewController的视图中.我正在为他们分配一个UITapGestureRecognizer,但我似乎无法进行独家触摸工作:

for (int i = 0; i <= n; i++) {
   ICCatalogProductView *catalogProductView;
   catalogProductView = [[ICCatalogProductView alloc] init];
   [self.view addSubview:catalogProductView]
   UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(testTouch)];
   [catalogProductView addGestureRecognizer:tapGesture];
   [catalogProductView setExclusiveTouch:YES];
}
Run Code Online (Sandbox Code Playgroud)

如果我同时点击UIViews,该方法被调用两次(不是我想要的行为).有没有任何优雅的方法来解决这个问题,或者任何方法呢?

touch uiview ios

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

排除Grails构建范围依赖项

使用Grails 2.4.3,如何排除在build作用域中定义的依赖项?

Grails与图书馆捆绑在一起spock-core-0.7-groovy-2.0.jar; 添加标准全局依赖项排除时:

...
grails.project.dependency.resolution = {
    // inherit Grails' default dependencies
    inherits('global') {
        excludes 'spock-core'
    }
...
Run Code Online (Sandbox Code Playgroud)

除范围外,Spock被排除在所有依赖范围之外build.

grails dependencies build

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

在 C# 中创建带有排它锁的 SQLite 数据库

我正在尝试创建一个将日志模式设置为 WAL 的数据库,并通过将锁定模式设置为 EXCLUSIVE 来禁用共享内存,但我似乎无法使其工作。

我的连接字符串如下所示:

_connectionString = string.Format("Data Source={0};Synchronous=Off;Journal Mode=WAL; PRAGMA locking_mode=EXCLUSIVE", _databasePath);
Run Code Online (Sandbox Code Playgroud)

当我启动应用程序并创建数据库时,我仍然得到一个 shm 文件,我的印象是使用 EXCLUSIVE 作为锁定模式时不会发生这种情况。我还可以在多个应用程序中打开数据库,因此似乎没有设置独占锁。

如果有人能解释一下这种情况,我将不胜感激。

编辑说我正在使用 System.Data.SQLite v-1.0.74.0,它正在使用 SQLite v-3.7.7.1,因此应该在 WAL 模式下禁用共享内存。

c# sqlite wal

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

DateTimePicker UserControl 上的动态文本颜色 - WinForms

我正在创建一个基于 DateTimePicker 的 Windows 用户控件。该控件设置为仅显示时间,因此显示如下:

仅 DateTimePicker 时间

我有一个公共属性 TimeIsValid:

public bool TimeIsValid
{
   get { return _timeIsValid; }
   set
   {
      _timeIsValid = value;
      Refresh();
   }
}
Run Code Online (Sandbox Code Playgroud)

当它设置为 false 时,我希望文本变成红色。所以我用以下代码覆盖了 OnPaint:

    protected override void OnPaint(PaintEventArgs e)
     {
        base.OnPaint(e);

        e.Graphics.DrawString(Text, Font, 
        _timeIsValid ? new SolidBrush(Color.Black) : new SolidBrush(Color.Red),
        ClientRectangle);

     }
Run Code Online (Sandbox Code Playgroud)

这没有任何作用。所以在构造函数中我添加了以下代码:

public DateTimePicker(IContainer container)
{
    container.Add(this);
    InitializeComponent();
    //code below added
    this.SetStyle(ControlStyles.UserPaint, true);
}
Run Code Online (Sandbox Code Playgroud)

哪个有效,有点,但会导致一些令人震惊的结果,即

  • 即使控件被选中,它也不会显示为选中状态。
  • 单击上/下控件会更改控件的基础值,但并不总是更改可见值。
  • 通过另一个控件更改其值时,控件无法正确重绘,但将鼠标移到控件上似乎会强制重绘。

例如,看看这个奇怪的东西......

部分重绘控件

我错过了什么?

c# user-controls datetimepicker winforms

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

USBInterfaceOpen 总是报 kIOReturnExclusiveAccess 错误

最近遇到这个问题很头疼,我已经在这个问题上花了一个星期,但还是失败了。希望你能帮我把这块石头踢开,非常感谢。

我的问题:我们公司为iPhone生产USB存储设备,实际上这个存储设备中有一个SDCard。现在,我们要开发一个 Mac 应用程序来更新此存储设备的固件。但每次我的存储设备连接到Mac时,苹果会自动安装它,我总是失败,kIOReturnExclusiveAccess调用时USBInterfaceOpen

我也尝试写一个无代码的kext来增加探测分数,但它仍然不起作用。我不知道是我走错了路,还是在编写无代码 kext 时出现了一些错误,例如,写了一些错误的 IOClass、错误的包 ID。

我的无代码 kext info.plist 是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>BuildMachineOSBuild</key>
  <string>14E46</string>
  <key>CFBundleDevelopmentRegion</key>
  <string>en</string>
  <key>CFBundleIdentifier</key>
  <string>com.mophie.MyDriverTest3</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>MyDriverTest3</string>
  <key>CFBundlePackageType</key>
  <string>KEXT</string>
  <key>CFBundleSignature</key>
  <string>????</string>
  <key>CFBundleVersion</key>
  <string>1.0.3</string>
  <key>DTCompiler</key>
  <string>com.apple.compilers.llvm.clang.1_0</string>
  <key>DTPlatformBuild</key>
  <string>6E35b</string>
  <key>DTPlatformVersion</key>
  <string>GM</string>
  <key>DTSDKBuild</key>
  <string>14D125</string>
  <key>DTSDKName</key>
  <string>macosx10.10</string>
  <key>DTXcode</key>
  <string>0640</string>
  <key>DTXcodeBuild</key>
  <string>6E35b</string>
  <key>IOKitPersonalities</key>
  <dict>
    <key>MyDriverTest3</key>
      <dict>
        <key>CFBundleIdentifier</key>
        <string>com.apple.iokit.IOUSBFamily</string>
        <key>IOClass</key>
        <string>IOService</string>
        <key>IOProviderClass</key>
        <string>IOUSBDevice</string>
        <key>bcdDevice</key>
        <string>256</string>
        <key>idProduct</key>
        <integer>4369</integer>
        <key>idVendor</key>
        <integer>6631</integer>
      </dict>
  </dict> …
Run Code Online (Sandbox Code Playgroud)

usb kernel iokit kernel-extension

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

SimpleDateFormat始终以错误的时区返回1970.01.17

我一直在使用Processing 3.0,当我的Arduino输出某些值时,我正在尝试打印一个简单的时间戳,但它无效.我尝试使用SimpleDateFormat,但它总是返回1970.01.17 17:48:35 GMT,而不是实际时间.以下是MVCE:

void setup ()
{      
  SimpleDateFormat format = new SimpleDateFormat ("yyyy.MM.dd HH:mm:ss z");
  format.setTimeZone (TimeZone.getDefault());

  long timestamp = getTimeNow();
  println(format.format(new Date(timestamp)));
  println(timestamp);
}

long getTimeNow ()
{
   Date d = new Date ();
   Calendar cal = new GregorianCalendar();

   long current = d.getTime()/1000;
   long timezone = cal.get(Calendar.ZONE_OFFSET)/1000;
   long daylight = cal.get(Calendar.DST_OFFSET)/1000;
   return current + timezone + daylight;
}
Run Code Online (Sandbox Code Playgroud)

输出示例:

1970.01.17 17:48:35 GMT 
1442915733
Run Code Online (Sandbox Code Playgroud)

我怀疑问题是什么getTimeNow(),因为,如果我将值插入在线纪元转换器,我得到正确的时间.上面的代码有什么问题?

java processing date epoch simpledateformat

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

从numpy数组中排除元素

我想得到c数组作为结果,但我不知道如何:

import numpy as np
a = xrange(10)
b = np.array([3,2,1,9])
Run Code Online (Sandbox Code Playgroud)

c由不在b中的元素组成:

c = np.array([0,4,5,6,7,8])
Run Code Online (Sandbox Code Playgroud)

python arrays numpy elements

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

C++中的ifstream不接受变量

我试图使用以下代码片段:

int main()
{
string location_file ("test.txt");
string data;

ifstream file (location_file);
getline (file, data);
file.close();

cout << data;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

但它不会起作用.现在,如果我使用"ifstream文件("test.txt")"它会.为什么?到底是不是一回事?

c++ string fstream getline

0
推荐指数
1
解决办法
1435
查看次数