I'm assuming that by "discrete set" you mean that $A$ has no accumulation points--that is (since we're in a Hausdorff space), that every point in the plane has a neighborhood containing at most one point of $A$. Thus, $A$ is vacuously closed (as it contains all of its accumulation points), so since $B$ is closed, then so is $A\cap B$.
Compactness isn't enough for finiteness all by itself (consider the unit disk), so let's proceed a little further. For each point $z\in A$, we have by definition of discrete set that there is a neighborhood $U$ of $z$ such that $A\cap U=\{z\}$. To make this explicit, there is some least positive integer $n$ such that $A\cap\{w\in\Bbb C:|w-z|<\frac1n\}=\{z\}$, and given this $n$ (which depends on $z$), we'll let $U_z:=\{w\in\Bbb C:|w-z|<\frac1n\}$.
Now, the set $\mathcal{U}=\{U_z:z\in A\}$ is an open cover of $A$, and so an open cover of $A\cap B$, which we've already determined to be compact. Thus $\mathcal{U}$ has a finite subcover of $A\cap B$, say $\mathcal{V}=\{V_1,...,V_n\}$. We know by our construction of $\mathcal{U}$ that each open set $V_k\in\mathcal{V}\subseteq\mathcal{U}$ has the property that $A\cap V_k$ contains exactly one point, so $A\cap B\cap V_k$ contains at most one point. Hence, $(A\cap B)\cap\bigcup_{k=1}^nV_k=\bigcup_{k=1}^n(A\cap B\cap V_k)$ contains at most $n$ points. But $\mathcal{V}=\{V_1,...,V_n\}$ covers $A\cap B$, so $A\cap B\subseteq\bigcup_{k=1}^nV_k$, so $A\cap B=(A\cap B)\cap\bigcup_{k=1}^nV_k$. Thus, $A\cap B$ has at most $n$ points, so is finite.