当表格STOPS被移动时,C#中是否有任何事件触发.不是在它移动的时候.
如果没有它的事件,有没有办法用WndProc做到这一点?
对于方法:
[NSThread detachNewThreadSelector:@selector(method:) toTarget:self withObject:(id)SELECTOR];
Run Code Online (Sandbox Code Playgroud)
如何传入@selector?我尝试将它转换为(id)以使其编译,但它在运行时崩溃.
更具体地说,我有一个像这样的方法:
+(void)method1:(SEL)selector{
[NSThread detachNewThreadSelector:@selector(method2:) toTarget:self withObject:selector];
}
Run Code Online (Sandbox Code Playgroud)
它崩溃了.如何在不崩溃的情况下传入选择器,以便新线程可以在线程准备好时调用选择器?
有没有办法在运行时知道变量的名称(来自代码)?或编译时遗忘的var名称(字节代码与否)?
例如
>>> vari = 15 >>> print vari.~~name~~() 'vari'
注意:我说的是普通的数据类型变量(int,str,list ...)
我可以初始化和使用的关键部分的数量是否有限制?
我的应用程序创建了许多(几千个)需要线程安全的对象.如果我在每个中都有一个关键部分,那会耗尽太多资源吗?
我认为,因为我需要声明自己的CRITICAL_SECTION对象,我不会像使用Win32 Mutex或Event那样浪费内核资源吗?但我只是有一个唠叨的怀疑......?
说实话,并非所有这些对象都可能需要对我的应用程序是线程安全的,但关键部分是在库中的某些低级基类中,我确实需要几千个它们!
我可能有机会修改这个库,所以我想知道是否有任何方法懒惰地创建(然后使用从那时开始)临界区只有当我检测到对象是从一个不同的线程使用到它的那个创建于?或者这是Windows会为我做什么?
我有以下代码,我试图从中提取系统代理设置:
QList<QNetworkProxy> listOfProxies = QNetworkProxyFactory::systemProxyForQuery();
foreach ( QNetworkProxy loopItem, listOfProxies ) {
qDebug() << "proxyUsed:" << loopItem.hostName();
}
Run Code Online (Sandbox Code Playgroud)
我只返回一个项目并使用空白主机名.我缺少什么想法?
我已经创建了一个静态库来存放我的一些代码,比如类别.
我在"UIView-Extensions.h"中有一个名为Extensions的UIViews类别.
在这个类别中我有一个叫做的方法:
- (void)fadeOutWithDelay:(CGFloat)delay duration:(CGFloat)duration;
Run Code Online (Sandbox Code Playgroud)
调用此方法在Debug配置的模拟器上运行正常.
但是,如果尝试在设备上运行应用程序,我会收到NSInvalidArgumentException:
[UIView fadeOutWithDelay:duration:]: unrecognized selector sent to instance 0x1912b0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIView fadeOutWithDelay:duration:]: unrecognized selector sent to instance 0x1912b0
Run Code Online (Sandbox Code Playgroud)
似乎由于某种原因UIView-Extensions.h没有被包含在设备构建中.
我检查/尝试了什么
我确实尝试为NSString包含另一个类别,并且遇到了同样的问题.
其他文件,如整个类和函数都可以正常工作.这是一个仅在类别中出现的问题.
我做了一个干净的所有目标,但没有解决问题.
我检查了静态库项目,这些类别包含在目标的"copy headers"和"compile sources"组中.
静态库包含在主项目"链接二进制文件库"组中.
我添加静态库的另一个项目工作得很好.
我删除并重新添加静态库,没有运气
-ObjC链接器标志已设置
有任何想法吗?
nm输出
libFJSCodeDebug.a(UIView-Extensions.o):
000004d4 t -[UIView(Extensions) changeColor:withDelay:duration:]
00000000 t -[UIView(Extensions) fadeInWithDelay:duration:]
000000dc t -[UIView(Extensions) fadeOutWithDelay:duration:]
00000abc t -[UIView(Extensions) firstResponder]
000006b0 t -[UIView(Extensions) hasSubviewOfClass:]
00000870 t -[UIView(Extensions) hasSubviewOfClass:thatContainsPoint:]
000005cc t -[UIView(Extensions) rotate:]
000002d8 …Run Code Online (Sandbox Code Playgroud) 我已经安装了SVN Tortoise并想要创建一个存储库.我按照手册在命令提示符下的正确目录中键入"svnadmin ........".它不识别单词svnadmin:'svnadmin'不被识别为内部或外部命令.........
在只需要1列作为键的表中,该列中的值可以是整数,何时不应使用标识字段?
相反,在同一个表和列中,何时会手动生成其值,并且不会为每条记录使用自动生成的值?
我想当表中有大量的插入和删除时会出现这种情况.我对吗?还有什么其他情况?
我刚刚在评论另一个名为Effective Googling for short names的问题上阅读
C#对谷歌来说并不坏.这将是一个很大困难,如果它被称为M#,顺便说一句.
为什么?我错过了什么?
.Net堆栈中的Windows Workflow有哪些替代方案?如果您使用过这些解决方案,那么是什么让您通过Windows Workflow选择它们,这是一个不错的选择.
更新:
我继续选择由Nicholas Blumhardt创建的无国籍人.这是一种在域中建模状态的非常简单的方法.以下是Google提供的示例代码:
var phoneCall = new StateMachine<State, Trigger>(State.OffHook);
phoneCall.Configure(State.OffHook)
.Allow(Trigger.CallDialed, State.Ringing);
phoneCall.Configure(State.Ringing)
.Allow(Trigger.HungUp, State.OffHook)
.Allow(Trigger.CallConnected, State.Connected);
phoneCall.Configure(State.Connected)
.OnEntry(t => StartCallTimer())
.OnExit(t => StopCallTimer())
.Allow(Trigger.LeftMessage, State.OffHook)
.Allow(Trigger.HungUp, State.OffHook)
.Allow(Trigger.PlacedOnHold, State.OnHold);
phoneCall.Configure(State.OnHold)
.SubstateOf(State.Connected)
.Allow(Trigger.TakenOffHold, State.Connected)
.Allow(Trigger.HungUp, State.OffHook)
.Allow(Trigger.PhoneHurledAgainstWall, State.PhoneDestroyed);
Run Code Online (Sandbox Code Playgroud)
如您所见,状态机使用泛型来建模状态及其各自的触发器.换句话说,您可以使用枚举,整数,字符串等来满足您的需求.可以使用条件触发器配置状态机的每个状态,该触发器将根据特定条件触发.
c++ ×2
iphone ×2
.net ×1
c# ×1
cocoa-touch ×1
events ×1
exception ×1
move ×1
objective-c ×1
open-source ×1
performance ×1
proxy ×1
python ×1
qt ×1
selector ×1
sql-server ×1
svn ×1
winapi ×1
windows-xp ×1
winforms ×1
wndproc ×1
xcode ×1