我试图在C#中增加列表中的元素,但我需要它是线程安全的,因此计数不会受到影响.
我知道你可以为整数做这个:
Interlocked.Increment(ref sdmpobjectlist1Count);
但是到目前为止我对以下内容的列表不起作用:
lock (padlock)
{
DifferenceList[diff[d].PropertyName] = DifferenceList[diff[d].PropertyName] + 1;
}
Run Code Online (Sandbox Code Playgroud)
我知道这有效,但我不确定是否有另一种方法可以做到这一点?
我正在看下面的语法,我相信它在第3行是不明确的,但不确定.
<SL> ? <S>
<SL> ? <SL> <S>
<S> ? i <B> <S> e <S>
<S> ? i <B> <S>
<S> ? x
<S> ? y
<B> ? 5
<B> ? 13
Run Code Online (Sandbox Code Playgroud)
我发现这个字符串xi13yi5xeyx我相信生成两个不同的解析树,但我不确定我是否做错了.
有人可以验证我的发现吗?
我试图在C中创建一个线程聊天服务器,但无法弄清楚如何不将消息回显给用户.我希望能够连接两个或更多客户端,并通过我的服务器相互聊天.
我哪里错了:
#include<stdio.h>
#include<string.h> //strlen
#include<stdlib.h> //strlen
#include<sys/socket.h>
#include<arpa/inet.h> //inet_addr
#include<unistd.h> //write
#include<pthread.h> //for threading , link with lpthread
#include<errno.h>
void *connectionHandler(void * soc_desc);
typedef struct {
int reader;
int writer;
}args;
int main(int arc, char* argv[]){
int *new_socket;
int socFD;
int client_sock;
struct sockaddr_in serveraddr;
struct sockaddr_in clientaddr;
args t1args, t2args;
int listenFd;
//socklen_t clientSize= size(struct sockaddr_in);
int c;
int acceptFD;
int client_sockets[2];
socFD=socket(AF_INET, SOCK_STREAM, 0);
puts("Socket created");
bzero((char*) &serveraddr, sizeof(serveraddr));
serveraddr.sin_family= AF_INET;
serveraddr.sin_addr.s_addr=INADDR_ANY;
serveraddr.sin_port= htons(2000);
bind(socFD, (struct sockaddr*) …Run Code Online (Sandbox Code Playgroud)